SFTPファイルに接続するクライアントサーバー(ネットワーク外)があります。先週まで、Server1で正常に動作していました。最近、私たちはアプリケーションをServer2に移行しました(サーバー1と2はどちらもLinuxです)。
Server2 からクライアント サーバーに接続できません。 SSHキー(パスワードなし)があり、そのキーが表示されますrsa_id_client.pub
。古いサーバーから新しいサーバーにキーをコピーしましたが、そのキーを使用して認証することはできません。
古いサーバーから新しいサーバーにキーをコピーするために従う必要がある特定の手順はありますか?
答え1
背景
私は通常、ssh-copy-id
SSHキーの公開部分をサーバーからSSH / SFTPしたいクライアントにコピーする方法を使用します。 Server2にファイルをコピーするときは、ファイルに対する権限に特別な注意を払うことになります。ファイルに対する権限も重要です。権限があまりにも公開されている場合は、SSHでファイルの使用を拒否できます。
$ ls -l ~/.ssh
-rw------- 1 sming staff 3326 Sep 24 2018 ssh_sm@id_rsa
-rw-r--r-- 1 sming staff 737 Sep 24 2018 ssh_sm@id_rsa.pub
ssh_sm@id_rsa
ここに私の秘密鍵ファイル()と対応する公開鍵ファイル()がありますssh_sm@id_rsa.pub
。 Server1またはServer2でSSHを使用するには、SSHしたいユーザーのディレクトリにローカルssh_sm@id_rsa
ファイルを配置する必要があります。~/.ssh
リモートクライアントは、ファイルの内容をssh_sm@id_rsa.pub
クライアントサーバーのユーザーファイルにコピーしようとします。~/.ssh/authorized_keys
ファイルの権限も600でなければなりません。
ヒント
これを容易にするために、私は通常このssh-copy-id
ツールを使用して、次のようにファイルの内容を適切に管理します~/.ssh/authorized_keys
。
server2$ ssh-copy-id -i ~/.ssh/ssh_sm@id_rsa someuser@client1