パスワードを入力せずにファイルを転送してコマンドを実行できるようにキーを作成しました。私はこのガイドを使ってこれを行います。
http://says-story.blogspot.nl/2008/01/using-ssh-scp-sftp-without-password.html
ローカル環境で、id_dsa.pubキーのchmodを600に変更します。
今このコマンドを実行すると
scp -i /home/.ssh/id_dsa.pub /prod/tool/CODELIBRARY.txt user@remoteenv:/toload
引き続きパスワードをお願いします。 Enterキーを押すと、パスワードの入力を求められます。
ただし、このコマンドを実行すると、パスワードやパスワードのフレーズなしで動作します。
ssh -v -l username remoteenv
答え1
scp -i /home/.ssh/id_dsa.pub
このコマンドには2つのエラーがあります。一つは、このような状況が/home/.ssh
存在する可能性が低いことです。 SSHキーは通常ホームディレクトリと呼ばれるディレクトリにあり.ssh
、ホームディレクトリは通常と同じである/home/bob
ため、その.ssh
ディレクトリはです/home/bob/.ssh
。
もう一つの概念的な質問はscp
(またはssh
またはsftp
)が与えられるべきです。プライベート鍵ファイルを渡しましたが、公開鍵ファイルを渡しました。このキーは、サーバー上のクライアントを認証するために使用されます。クライアントは自分が誰であるかを証明する必要があり、そのために他の人が知らない秘密、つまり秘密鍵を知っていることを示しています。サーバーはクライアントが誰であるかを知り、公開鍵も知っています。
scp
または、ssh
デフォルトでは正しいファイルを見つけるため、キーファイルを指定しない場合に機能します。
答え2
問題は...このコマンドを実行するとき:
ssh-keygen -t dsa
キーワードの入力を求められます。
[admin@test ~]$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
パスワードを空にしましたか?それともそこにパスワードを入力しましたか?この場合、毎回パスワードを求めるメッセージを避けるためにパスワードを空白にしておく必要があります。
答え3
私が見つけたもう一つの事実は、ファイルを編集して.ssh/authorized_keys
ホスト名を正規化する必要があるということです。それ以外の場合は、scp / sshコマンドで完全修飾名を使用できません。