パスワードを入力せずにWindowsからLinuxへのSSH


9

パスワードを入力せずにWindowsからLinuxにssh / scpを使用しようとしています。

これは私がやったことであり、うまくいかないようです:

  • Putty Key Generatorを使用して生成された公開鍵と秘密鍵(Windows)
  • ファイルをid_rsa.puband として保存しましたid_rsa
  • それらをコピーしました ~/.ssh
  • id_rsa.pubをLinuxボックスに追加しました ~/.ssh/authorized_keys
  • その後ssh、WindowsからLinuxボックスにアクセスしようとしますが、パスワードを入力する必要があります

何か不足していますか?

回答:


8

Windowsで認証エージェントを実行する必要があります。

たとえば、PuTTY(グラフィカルSSHクライアント)またはPlink(コマンドラインに相当)と組み合わせて使用​​されるPageantです。

PageantにSSHサーバーの公開鍵を伝える必要があります。その後、バックグラウンドで実行中にサーバーの認証要求を処理します。


注:(これは私には明らかではありませんでした。)Pageantを開くと、右下の通知領域にアイコンとして開きます。それを右クリックし、「鍵の追加」をクリックして、puttygenから生成された.ppkファイルを選択します。
badjr

7

Pageantが必要です。

PuTTYおよびPageantによるパスワードなしのログインのビデオを参照してください。および/またはブログ投稿Howto:PuTTYを使用したパスワードなしのSSH認証


1
ビデオではなくテキストベースのチュートリアルにリンクしてみてください。
コーダー

ブログのリンクが壊れています。これを試してください:tecmint.com/ssh-passwordless-login-with-putty
Kai Wang

2
壊れたブログのリンクは、答えがリンクよりも多くなければならない正確な理由です。
ラムハウンド


3

SSHキー認証をセットアップするのは少し難しい場合があります。すべての拠点をカバーしているようです。しばしば不注意な人を捕まえる1つのこと- .sshディレクトリとそのコンテンツがあなたによって所有され、あなただけが読み書きできるようにする必要があります。

必ず(すべての.sshディレクトリで)これを実行してください:

chmod -R 700 on ~/.ssh

それでもうまくいかない場合は-vsshコマンドに追加して詳細ログを有効にします(-vs詳細度を高めるために最大3つ追加できます)。


2

あなたの鍵はパスワードで保護されておらず、あなたが得ているのはあなたの鍵のパスワードの要求ではないと思います。

〜/ .sshはWindows側のputtyでは使用されず、puttyにはデフォルトの秘密鍵設定がありません。cygwinなどのコマンドラインsshクライアントを使用している場合、自宅から.sshディレクトリを作成すると機能します。パテから、セッションを構成して保存する必要があります。

パテ構成ダイアログから、接続->データを見て、自動ログインのユーザー名フィールドに入力します。次に、接続-> ssh->認証に進み、秘密鍵を正しく設定します。次に、セッションダイアログに戻り、このセッションを保存します。必要に応じてホスト名を設定することもできます。

セッションを保存したら、「putty -load "savedsession"」を使用できます。


また、ターゲットマシン上のchmod 700〜/ .ssh、およびchmod 644〜/ .ssh / authorizedキー。あなたの指示に従い、許可を正しく設定したら、私のために働き始めました。
ブリスターピーナッツ

1

ホームディレクトリのアクセス許可を変更する必要がある場合もあります。

chmod 755 ~

0

私はこれを行う方法をいくつか試しましたが、最初に働いたのは ssh-copy-id

#By default this puts keyfile pair in ~/.ssh/id_rsa & ~/.ssh/id_rsa.pub :

ssh-keygen.exe -t rsa -b 2048 
ssh-copy-id -i ~/.ssh/id_rsa.pub  $remoteuser@$remotehost


# I'm not sure if these two chmod lines are needed on windows but 
# typically ssh refuses to use a private key file 
# if it is less-well protected than this:
chmod 700 ~/.ssh
chmod 640 ~/.ssh/id_rsa

sshツールを入手する最も簡単な方法は、git for Windowsをインストールすることです。

git-installed bash shellから上記のコマンドを実行しました。PowerShellからssh-copy-idを実行するとどうにか機能しなかったため、このPowerShellスクリプトで終了しました

Param(
  [Parameter()][string]$keyfile="id_rsa",
  [Parameter()][string]$remotehost,
  [Parameter()][string]$remoteuser
  )
write-host "# ---------------------------------------------------------------------------------#"
write-host "# Create an RSA public/private key pair, and copy the public key to remote server  #"
write-host "#                                                                                  #"
write-host "# https://superuser.com/questions/96051                                            #"
write-host "#         ssh-from-windows-to-linux-without-entering-a-password/1194805#1194805    #"
write-host "#                                                                                  #"
write-host "# ---------------------------------------------------------------------------------#"

write-host "Keyfile pair will be saved at : ~/.ssh/$keyfile, ~/.ssh/$keyfile.pub"
write-host "And copied to $remoteuser@$remotehost"
write-host ""
write-host "You will need a password for the copy operation."
write-host ""

if( -not $(ls ~/.ssh) ) { mkdir ~/.ssh }
$sshdir=$(get-item ~/.ssh/).Fullname

#By default this puts keyfile pair in ~/.ssh/id_rsa & ~/.ssh/id_rsa.pub :
ssh-keygen.exe -t rsa -b 2048 -f "$sshdir$keyfile"
bash -c "ssh-copy-id -i ~/.ssh/$keyfile.pub $remoteuser@$remotehost"

# I'm not sure if these two chmod lines work on windows but 
# typically ssh refuses to use a private key file 
# if it is less-well protected than this:
chmod.exe 700 $sshdir
chmod.exe 640 "$sshdir$keyfile"

0

ID秘密鍵を提供するオプションをWindows 7使用することで、これを正確に行うことができました-i

ssh -i X:\ win-path \ to \ private-key remoteuser@remote.host.com

ただし、リモートホストでは、認証済みのキーが/etc/ssh/authorized_keys/remoteuserとにあることを除き、/etc/ssh/sshd_config変更しました

#AuthorizedKeysFile     .ssh/authorized_keys
AuthorizedKeysFile      /etc/ssh/authorized_keys/%u

しかし、SSHリモート設定が重要かどうかはわかりません。


0

私はこれを使用しました:

c:> c:\ users \ my_name.ssh \ id_rsa.pubと入力します| ssh root@172.110.1.171 "cat >> / root / .ssh / authorized_keys"

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.