web-dev-qa-db-ja.com

WindowsからLinuxへ:SSHおよび秘密鍵/公開鍵のペアを備えたPuTTY

パスワードを送信せずにPuTTYを使用してWindowsマシンからLinuxボックスに接続する方法を理解するために、約3時間を費やしました。

これは、OpenSSHを使用しているUbuntuサーバーに接続しています。秘密鍵はSSH-2 RSA、1024ビットです。 SSH2を使用して接続しています。

私はすでにより一般的な問題に遭遇しました:

  1. PuTTYは「間違った形式」で公開鍵を生成しました。私はこれを修正しました( このブログ投稿 で見られるように)。ただし、まだ接続していないため、このファイルが正しい形式であることを完全には確認できません。キーはすべて1行になっています。ファイルの最後で改行を追加または削除してみました。また、手動ファイル変換を何度も試行錯誤していないことを確認するために、公開ファイルの修正プロセスを数回試しました。それでも、ここでは正確さを確認する方法がありません。
  2. 同時に、アクセス許可も誤っていました。具体的には、ファイルのアクセス許可が多すぎることを意味します。私もこれを解決する必要があり、/ var/log/auth.logに関連するエラーが表示されなくなったので、これを乗り越えたことを知っています。
  3. authorized_keysauthorized_keys2の両方を試しましたOpenSSHの古いバージョンですが、これは何も変わりませんでした。
  4. ユーザーとしてアクセスできます。このキーファイルに失敗した後、代わりにパスワードを入力できます

私が持っている唯一の情報のニブルは、主張されているパスワードが間違っていると主張していることです:

sshd[22288]: Failed password for zzzzzzz from zz.zz.zz.zz port 53620 ssh2

それでも、私が知る限り、これはどこかで怠惰なtry/catchです。なぜなら、パスワードが含まれているとはまったく思えないからです

使用している/ var/logファイルには他に何もありません。他に何が間違っているのでしょうか?

7
Johnny Kauffman
  • PuttyGenでキーを生成します。
  • [貼り付けの公開キー...]テキストボックスを右クリックして、[select all]を選択します
  • もう一度右クリックしてcopyを選択します。
  • ホストに接続して.ssh/authorized_keysを編集し、キーを貼り付けて、そのビデオをフォローしたときの既存のものをすべて削除します。
  • ~/.sshフォルダが0700であり、chmod 0700 ~/.ssh/であることを確認します
  • Authorized_keysファイルは0600なので、chmod 0600 ~/.ssh/authorized_keysにする必要があります。

enter image description here

11
Zoredache

つまり、鍵の交換が行われなかったか、失敗しました。

cliツールplink.exe(PuTTY.exeをダウンロードしたのと同じ場所)をダウンロードし、デバッグを行ってください

plink -v -i yourprivatekeyfile user@server

サーバーが言っていることに加えて、それがあなたに伝えていることを見てください。

これは、powershellまたはcmdウィンドウで実行できます。

デフォルトのPuTTYパブリックファイルをすでに生成している場合は、次のコマンドで変換できます。

ssh-keygen -i -f yourputtypubkeyfile> openssh.key

authorized_keysに追加する

1
johnshen64

キーペアを生成し、@ Zoredacheの提案に従ってサーバーに公開キーを保存します。秘密キーを保護するためのパスワードを入力し、Save private keyをクリックしてキーを保存します。あなたのユーザープロファイルで。自分以外のすべてのユーザーの権限をキーファイルから削除します。

秘密鍵で認証できるようにするには、PuTTYで使用できるようにする必要があります。 load it with Pageant またはPuTTY設定ダイアログのConnection > SSH > AuthBrowse...をクリックしてファイルを選択)保存されました)。

同じダイアログで、カテゴリSessionに、接続するホストのホスト名またはIPアドレスをそれぞれのフィールドに入力します。サブカテゴリLoggingに切り替えてAll session outputをクリックし、次にOpenをクリックします。

ターミナルウィンドウが開いたら、タイトルバーを右クリックして[Event Log]を選択します。このクライアント側のログは、サーバー側のauth.logを補完するものであり、何が起こっているのかを見つけるのに役立ちます。

1
Ansgar Wiechers