web-dev-qa-db-ja.com

パスワードなしでローカルホストにsshする方法は?

編集:行われたことを正確に伝える

パスワードなしでlocalhostをSSHで送信する必要がありますが、通常の方法(公開キーを使用)では機能しません。

user@PC:~$ rm -rf .ssh/*
user@PC:~$ ssh-keygen -t rsa > /dev/null 
Enter file in which to save the key (/home/user/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
user@PC:~$ ls .ssh/
id_rsa  id_rsa.pub
user@PC:~$ ssh-copy-id -i localhost 
The authenticity of Host 'localhost (::1)' can't be established.
RSA key fingerprint is f7:87:b5:4e:31:a1:72:11:8e:5f:d2:61:bd:b3:40:1a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
user@localhost's password: 
Now try logging into the machine, with "ssh 'localhost'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

user@PC:~$ ssh-agent $Shell
user@PC:~$ ssh-add -L
The agent has no identities.
user@PC:~$ ssh-add 
Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)
user@PC:~$ ssh-add -L
ssh-rsa ...MY KEY HERE

user@PC:~$ ssh-copy-id -i localhost 
user@localhost's password: 
Now try logging into the machine, with "ssh 'localhost'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

user@PC:~$ ssh localhost echo 'testing'
user@localhost's password: 

user@PC:~$ 

したがって、最後のコマンドでわかるように、まだパスワードを要求しています!どうすれば修正できますか? Ubuntu-10.04、OpenSSH_5.3p1

EDIT2:

Sshdに関する情報を追加する

user@PC:~$ cat /etc/ssh/sshd_config | grep Authentication
# Authentication:
RSAAuthentication yes
PubkeyAuthentication yes
RhostsRSAAuthentication no
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
ChallengeResponseAuthentication no
# PasswordAuthentication yes

EDIT3:$ ssh -vv localhostからの広告結果

$ssh -vv localhost
...
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/user/.ssh/identity
debug1: Offering public key: /home/user/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/user/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug1: Next authentication method: password
user@localhost's password: 
55
canesin

パスワードなしのログインを作成するために次の3つの手順を実行しました

1. ssh-keygen -t rsa
Press enter for each line 
2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3. chmod og-wx ~/.ssh/authorized_keys 
132
user2402070

問題を発見しました。

デバッグしながらサーバーを実行する:

$sshd -Dd

Auth_keyを読み取れないことがわかりました

$chmod 750 $HOME

それを修正しました。

16
canesin

別のpossible answer:authorized_keysファイルが存在し、読み取り可能である場合があります。ただし、グループまたは世界中で書き込み可能な場合は、パスワードの入力が求められます。その問題に対する答えは

chmod og-wx ~/.ssh/authorized_keys
13
shipr

次の手順を実行します

ssh-keygen -t rsa -C "[email protected]"
# Creates a new ssh key, using the provided email as a label
# Generating public/private rsa key pair.

デフォルトのファイルと空のパスフレーズを使用します(次の2つのステップで単にEnterを押します)

# start the ssh-agent in the background
eval "$(ssh-agent -s)"
# Agent pid 59566
ssh-add 

〜/ .ssh/id_rsa.pubの内容を〜/ .ssh/authorized_keysにコピーします

以下が権限であることを確認してください

 ls -l .ssh/
 total 20
-rw-r--r--. 1 swati swati  399 May  5 14:53 authorized_keys
-rw-r--r--. 1 swati swati  761 Jan 12 15:59 config
-rw-------. 1 swati swati 1671 Jan 12 15:44 id_rsa
-rw-r--r--. 1 swati swati  399 Jan 12 15:44 id_rsa.pub
-rw-r--r--. 1 swati swati  410 Jan 12 15:46 known_hosts 

また、.sshディレクトリーの許可が以下であることを確認してください。これも重要です

drwx------.   2 swati swati    4096 May  5 14:56 .ssh
5
swatisinghi

2つの簡単なステップ:

ssh-keygen -t rsa <Press enter for each line>
ssh-copy-id localhost

パスワードを入力して完了です。

5
Rohit Patwa

すべての推奨事項に従った後でも同じ問題に直面しましたが、この問題はgnome-keyring干渉に関連していることがわかりました。

解決:

  1. 検索に進み、「スタートアップアプリケーション」を探します
  2. 「SSH Key Agent」が表示されたら、ボックスのチェックを外します
  3. マシンを再起動して、localhostに接続します。
1
Ananth Joshi

あなたがの問題に遭遇した場合、受け入れられた答えがするように

    Agent admitted failure to sign using the key.

必要がある

    ssh-add
1
J.stack

正しく安全な方法は、ここで述べたようにキーをコピーすることです。

他の場合には、sshpassが便利です。

sshpass -p raspberry ssh [email protected]

これはまったく安全ではないことに注意してください。安全な環境で使用するのは良い考えではありませんが、スクリプト作成、自動テストに役立ちます...

これはと組み合わせることができます

ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected]

スクリプトの実行を妨げる確認の質問を避けるため。

繰り返しますが、これは、異なるマシンがIPを共有し、セキュリティが重要でない開発システムでのみ使用してください。

https://ownyourbits.com/2017/02/22/easy-passwordless-ssh-with-sshh/

1
nachoparker

Centos 7で

解決

1 create rsa key
2 vim /etc/ssh/ssh_config
3
#   IdentityFile ~/.ssh/identity
uncoment this line > IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa

注*この前にキーと他の回答のいくつかをコピーした後にこれを行いました。しかし、私はこれがあなたがしなければならないことすべてであると確信していますが、そうでない場合は、rsaキーをauthorized_keysに追加し、また実行します

ssh-copy-idからusername @ localhost

1
Don Davis

この方法でsshログインの問題を解決しました。

サーバー側でキーペアを生成し、秘密キーをWindows 10コンピューターにコピーして、パスワードなしでログインできるようになりました。

以前は、window 10ラップトップで生成されたキーペアを使用しましたが、まったく運がありませんでした。

1
LazyRay