我也尝试设置无密码的 ssh b/w AtoB和Bto A。ssh-keygen -trsa在两台机器上使用生成公钥和私钥。使用的ssh-copy-id实用程序将公共密钥从复制A到B以及B到A。
该密码的ssh从工作A到B,但是not从B到A。我检查了 ~/ssh/ 文件夹的权限,似乎是正常的。
A's .ssh 文件夹权限:
-rw------- 1 root root 13530 2011-07-26 23:00 known_hosts
-rw------- 1 root root 403 2011-07-27 00:35 id_rsa.pub
-rw------- 1 root root 1675 2011-07-27 00:35 id_rsa
-rw------- 1 root root 799 2011-07-27 00:37 authorized_keys
drwxrwx--- 70 root root 4096 2011-07-27 00:37 .. …Run Code Online (Sandbox Code Playgroud) 我刚刚安装了 ubuntu 13.10,我正准备将我的身份添加到我的 ssh-agent 中,所以我打开了一个终端并执行了此操作
bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ ssh-add
bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我有多个 ssh 密钥,并且在 bitbucket 和 github 上也有帐户。我什么时候使用 pull 它会给我错误
:/var/www/proj$ git pull origin master
conq: repository access denied.
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
或者,如果我通过 SSH 访问 bitbucket 网站,则会出现错误,拒绝公钥
:~$ ssh git@bitbucket.org
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题并对不同的帐户使用不同的密钥。
自从我不久前更新到 Ubuntu 17.10 以来,我的私钥——例如我用来通过 ssh 访问我的服务器——在登录后不再以编程方式解锁。
我的理解是,通常seahorse client应该通过询问您是否在第一次输入密钥时存储密钥的密码来解决这个问题。
我的第一个猜测是,seahorse-daemon由于某种原因它没有运行,但它是:
user@Zeus:~$ ps aux | grep seahorse
user 19170 0.0 0.1 432636 26564 ? Ss 00:07 0:00 seahorse-daemon
Run Code Online (Sandbox Code Playgroud)
我的第二个猜测是,出于某种原因,我必须删除存储在海马中»密码->登录«下的所有相关密码:
我希望强迫客户再次询问我,然后再次存储它们。但这也无济于事。客户没有弹出来问我...
然后我发现了这个问题,这可能是相关的,但对我没有帮助: 在 Ubuntu 上解锁所有私钥,登录时只输入一次密码
由于其他密码的管理按预期工作(例如鹦鹉螺、Chromium、Nextcloud 等的密码),我认为问题与ssh-agent...有关。
任何人都可以向我暗示正确的方向,如何解决这个问题?GNOME 处理密码的方式有什么改变吗?也许在升级过程中安装了一些新的花哨程序失败?
更新 当我再次将私钥添加到身份验证代理时:
ssh-add ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
并尝试登录,我将被要求只解锁一次密钥,然后以编程方式解锁密钥。但这仅在下一次重新启动之前有效。重新开始后,我必须再次添加密钥...
每次我从无头 Ubuntu 服务器通过 SSH 连接到另一台服务器时,我都会被要求输入密钥文件的密码。即使我之前已经连接到服务器。
你知道为什么会这样吗?它可能像ssh-agent当前未运行之类的简单。
我的 Ubuntu Gnome 桌面上的相同键工作正常。服务器和桌面都运行 Ubuntu 10.10。
ps -ef | grep '[s]sh-agent'
simon 3219 1 0 12:46 ? 00:00:00 ssh-agent
Run Code Online (Sandbox Code Playgroud) 我阅读并遵循了一些关于如何设置ssh-agent 的在线文档,这样我就不需要每次 ssh 到远程机器时都输入密码。
但是,在ssh-agent的帮助下,我ssh-add每次重新启动 shell 时仍然需要这样做。在ssh-add随后要求我输入密码解锁私钥。
Enter passphrase for key '/home/xx/.ssh/id_rsa':
Run Code Online (Sandbox Code Playgroud)
我没有输入远程机器的密码,而是要求我输入私钥的密码。这就像走出炼狱,然后发现自己陷入了地狱。看起来 id_rsa 只是在 session 中临时添加到 ssh-agent 中,因为每次我登录并键入ssh-add -l. 我得到:
The agent has no identities.
Run Code Online (Sandbox Code Playgroud)
请问如何将密钥(id_rsa)永久存储在ssh-agent中?谢谢
编辑:这就是我对ssh-agent. 我将以下块附加到~/.bash_profile
SSHAGENT=/usr/bin/ssh-agent
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "SSHAGENT" ]; then
eval `$SSHAGENT $SSHAGENTARGS`
trap "kill $SSH_AGENT_PID" 0
fi
Run Code Online (Sandbox Code Playgroud) 当我运行 Gnome 时,如果身份未加载,ssh-agent 将在 slogin/ssh 上运行 ssh-add。我想在远程 shell 上模仿这种行为,但我发现的所有内容都建议在登录时运行 ssh-add。如果我随后在远程 shell 上运行 slogin/ssh,我只想运行 ssh-add,而不是每次登录时。
byobu 无法很好地连接到 ssh-agent 套接字。实际上,我只能通过 ssh-agent 建立一个连接,但是如果我尝试使用该代理建立另一个 ssh 连接,则它不起作用。我试过了
setenv SSH_AUTH_SOCK `echo $SSH_AUTH_SOCK`
Run Code Online (Sandbox Code Playgroud)
在,~/.byobu/profile但它并没有奏效。
我刚刚更新了我的 ssh 密钥并添加了一个密码短语,但是它现在不断地唠叨我,例如当我执行 git(或 mercurial hg)推送时。 ssh-agent在跑:
xxx 1303 1118 0 09:16 ? 00:00:00 /usr/bin/ssh-agent
/usr/bin/dbus-launch --exit-with-session
/usr/bin/im-launch mate-session
Run Code Online (Sandbox Code Playgroud)
我试过ssh-add:
> ssh-add
Identity added: /home/…/.ssh/id_rsa (/home/…/.ssh/id_rsa)
Enter passphrase for /home/…/.ssh/id_ed25519:
Could not add identity "/home/…/.ssh/id_ed25519":
communication with agent failed
Run Code Online (Sandbox Code Playgroud)
有什么不见了?16.04 Ubuntu Mate,以防万一。