
通常はパスワードの入力を求めるプロンプトが表示されますが、今回は端末でキーのパスフレーズの入力を求められます。
rcihp145:qa1wrk13:/qa1users1/rgs/test/qa1wrk13/scripts>scp -p msingh2@rcihp145:/home/msingh2/set_run_jobs .
The authenticity of host 'rcihp145 (10.3.37.48)' can't be established.
RSA key fingerprint is 62:f9:d2:7e:d5:ac:bc:9d:0f:8f:82:d3:d4:a9:dc:f5.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/qa1users1/rgs/test/qa1wrk13/.ssh/known_hosts).
Enter passphrase for key '/qa1users1/rgs/test/qa1wrk13/.ssh/id_dsa':
このキーマッピングについての説明または解決策を教えていただけますか。
答え1
scp は ssh プロトコルを使用してファイルを転送します。~/.ssh/
ディレクトリにキーファイルがあるため、scp は「パスワードなしのログイン」を使用するものと想定します (Linux で SSH を設定してパスワードなしでログインするにはどうすればよいですか?) をそのキーを使用して暗号化します。ただし、このキー ファイルは独自のパスワードで保護されており、ターゲット コンピュータとの通信を暗号化するためにキーを使用する前に、このパスワードを入力する必要があります。
このようなセットアップでは、 がssh-agent
実行中になっているはずです。このプログラムは、使用している SSH キーを追跡し、セッションごとに 1 回キー ファイルのパスワードを要求します。ほとんどのデスクトップ ディストリビューションでは、ログイン時に ssh-agent が自動的に起動されるため、心配する必要はありません。
答え2
このトランスクリプトには 2 つの部分があります。まず、クライアントはサーバーが誰かわからないため、サーバーの ID を確認するように要求します (「接続を続行しますか?」までのすべて)。次に、クライアントは、この ID を確認したことを書き込もうとしますが、失敗します (おそらく、書き込み権限がないため) /qa1users1/rgs/test/qa1wrk13/.ssh/known_hosts
。クライアントにサーバーの ID を保存させるか、手動でファイルに追加する必要があります。
2 番目の部分、最後の行は、サーバー上でユーザーを認証するためのものです。これにはいくつかの方法がありますが、最も一般的なのは、パスワード ( を使用するたびに入力ssh
) またはキー ファイル (パスフレーズで保護でき、その場合はセッションごとに 1 回パスフレーズを入力できます) です。
詳細については、SSH キーベースの認証: known_hosts と authorized_keys
キー ファイルのパスフレーズの入力を求めるプロンプトではなく、パスワードの入力を求めるプロンプトを表示する場合は、ssh クライアントにキー ファイルを使用しないように指示します。
scp -o PubkeyAuthentication=no -p msingh2@rcihp145:/home/msingh2/set_run_jobs .