it-swarm-ja.com

サーバーが公開鍵認証のみを許可している場合に2番目の鍵をssh-copy-idする方法

[MacOS 10.12.6ホスト、Ubuntu 14.04 LTSゲスト]

ローカルVM公開鍵認証のみを受け入れるように設定されています。これまでは、パスフレーズの入力を必要とする鍵を使用しており、配置は正常に機能します。しかし、今は必要ですscpを自動的に実行するスクリプトを設定します。

パスフレーズを提供するためにスクリプトを一時停止することも、expectを使用して自動的に行うこともしたくないので、パスフレーズのない2番目のキーを使用することにしました。

ssh-copy-id-iパラメータを使用してアップロードするキーを指示するため、この状況を処理できず、ログインに使用するキーを指定できないようです。

それで、私の質問は、最初にログインするために使用される2番目のキーをssh-copy-idに受け入れる方法を教えてください。 ssh-addを使用する必要がありますか?

(上記のssh-copy-idでのやり直しを考慮して、手動でキーをコピーし、authorized_keysファイルに追加しました。)

9
gone

ssh-copy-idは、リモートauthorized_keysファイルにキーを追加します。複数の特定のキーを追加するには、-i <key-file-name>を使用してキーごとに1回実行します。

更新

あなたのコメントの後、私はあなたの質問を間違ったと思います。

サーバーに別のキーをインストールするときに、1つのキーを使用して認証する必要があります。

ssh-copy-idは、ssh-copy-idの実行中に認証するためのキーを選択するコマンドラインオプションを提供していません。

ただし、-osshに渡します。そう:

ssh-copy-id -i ~/.ssh/<your-already-existing-id> -o 'IdentityFile ~/.ssh/<your-new-id-to-install>' <servername>

ssh-agentを使用することもできます。その場合、sshscpssh-copy-id、a.s.oを使用するときにパスフレーズを入力する必要はありません。 ssh-agentが実行されている限り。

7
sborsky

ssh-addを使用してキーをエージェントに追加することは、間違いなくオプションです。
それ以外の場合は、IdentityFileオプションを含む 。ssh/config ファイルにエントリを設定する必要があると思います。これにより、sshにそのサーバーの認証方法とsshの許可方法が通知されます-copy-idを実行します。

2
OpiF