已经尝试了我在谷歌中找到的所有内容。似乎什么都不起作用。这是我所做的。
user@home-machine ~ $ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
/home/user/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx user@home-machine
The key's randomart image is:
+--[ RSA 4096]----+
xxxxxxxxxxxxxxxxxxx
+-----------------+
user@home-machine ~ $ ssh-copy-id user@vps
user@vps's password:
Now try logging into the machine, with "ssh 'user@vps'", and check in:
~/.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
user@home-machine ~ $ ssh user@vps
Agent admitted failure to sign using the key.
user@vps's password:
user@vps:~$ ssh-add
Could not open a connection to your authentication agent.
user@vps:~$ eval "$(ssh-agent)"
Agent pid 1501
我退出并重试,但仍然收到消息:
特工承认未能使用密钥进行签名。
我再次尝试 ssh-add 并得到:
无法打开与您的身份验证代理的连接。
我删除了 .ssh/authorized_keys 并再次尝试,但仍然没有任何结果。
答案1
尝试找到正在运行的进程ssh-agent
并终止它们,代理可能行为不正确。
另请注意,遇到ssh-agent
问题与您的~/.ssh/authorized_keys
.
它ssh-agent
是一个帮助登录的助手ssh
,通过将您的密码缓存在内存中,这样您就不必每次使用它时都键入它。
我已经习惯于向keychain
my 中添加对实用程序的调用~/.bash_profile
,以帮助管理 my ssh-agent
(和 my gpg-agent
,但那是另一个故事了)。
只需将此行放入您的~/.bash_profile
(或~/.bashrc
,根据您的参考文献,存在细微差别):
eval $(keychain --clear --eval id_rsa id_dsa id_ecdsa other.id_rsa)
这样,系统会提示您输入密钥的密码只有一次在整个 shell 会话中。
keychain
被打包在Debian及其衍生版本中,但它只是一个shell脚本。如果您的发行版没有它,您可以找到它这里。只需将其放在您的路径中的某个位置即可。建议chown
它root:root
和chmod
它rwxr-xr-x
(755) 避免非特权用户修改它。
不要使用没有密码的密钥。