Windows 7マシンからRed-Hat Linuxマシンへの公開SSHキー接続を設定しようとしています。最終的な目的は、コマンドターミナルからpscp
(scp
のPuTTYバージョン)を使用して、パスワードを繰り返し入力する必要がないことです。
PuTTYのドキュメントと他のオンラインソースに従って、PuTTYgenを使用してキーペアを生成しました。次に、生成された公開鍵をLinuxマシンの~/.ssh/authorized_keys
ファイルにコピーしました(私の知る限り、OpenSSHサーバーを実行しています)。
接続を確認するには、PuTTYを実行し、GUIの適切な場所にユーザー名と秘密鍵ファイルを設定します。
ただし、PuTTYのSSHを使用して接続しようとすると、接続は事前設定されたユーザー名を使用しますが、「Server refused our key
」というエラーメッセージとパスワードのプロンプトが表示されます。
次に、PuTTYgenのGUIからauthorized_keys
ファイルに公開キーテキストをコピーして貼り付けようとしましたが、どちらも機能しませんでした。
Win 7からLinuxへの公開キー接続をどのように設定すればよいですか?
(PuTTYのsshではなく)pscp
でこれをどのように使用しますか?
更新:PuTTYgenキー形式に問題がある可能性があると考え、Linuxマシンでssh-keygen
を使用してRSAキーペアを作成します。 id_rsa
秘密鍵とid_rsa.pub
公開鍵を生成しました。 「> ssh-add id_rsa
」という返事をgitにしたので、Could not open a connection to your authentication agent.
を使用しようとしても成功しなかったため、> cp id_rsa.pub authorized_keys
を使用しました。
次に、これらのファイルをWindowsマシンにコピーし、PuTTYgenを使用して秘密鍵をPuTTY秘密鍵形式(*.ppk
)に変換しました。新しいキーを使用して接続しようとすると、「Server refused our key
」という応答が返されます。
あなたはこれらを正しくフォローする必要があります。
SSHサーバーで公開鍵を構成する
公開鍵をSFTP経由でSSHサーバーにコピーします
put publicy_key
SSHサーバーにログインして、コピーされた公開鍵を確認します
ls -l public_key
公開鍵には権限がないため、400(読み取り用)に変更します。
chmod 400 public_key
Ssh-keygenツールを使用してopenSSH形式の公開鍵を作成する
ssh-keygen -if public_key > public_key_openssh_format
作成したopenSSH公開鍵をauthorized_keysファイルに追加します
cat public_key_openssh_format >> ~/.ssh/authorized_keys
.sshフォルダーとauthorized_keysファイルのアクセス許可を確認して、アクセス許可を確認します。
ls -al ~/.ssh
PuTTYでキーペアを確認
これで、鍵ベースの認証をPuTTYで検証できます。ホスト名とポートを入力します
秘密鍵(.ppk)を選択します
セキュリティ警告を確認する
構成が正しい場合、接続は正常に確立されます
それでも行き詰まっている場合。次に、ユーザーを再作成し、手順に従って公開鍵を再度構成する必要があります。
ユーザーは、次のコマンドを使用して再作成できます。
ユーザーフォルダのコピーを作成し、再作成する前に削除します。
yast2 users add username=userName cn=" User for test" password="password" gid=100 grouplist=dialout,video type=local
PuTTYまたはPuTTYgenが壊れていると結論付けました。これは、ファイル形式に関する簡単なユーザーエラーではありません。サーバーで承認された公開キーのハッシュを計算すると、キーを生成したクライアントのPuTTYgenによって表示されたハッシュと一致します。それでも、サーバーは一致しなかったようにキーを拒否します。
私はこれをOS X、Linux、Cisco&Juniperルーターで試しました。 PuTTYgenからのssh-rsa公開鍵が機能しません。
OpenSSHでキーを生成し、それらをPuTTYgenにインポートしてPuTTYの.ppkとして保存すると、正常に動作します。
おそらく、「接続/ SSH /認証/エージェント転送を許可する」オプションを「true」に設定する必要があります。 ssh-add
コマンドを実行した後、コマンドが機能しました。