我已经在我的 ubuntu 服务器中设置了 ssh,我已经安装了 git。所以,我把我的阴镰匙附加到~/.ssh/authorized_keys 安装了 git 的服务器的文件。我可以从我的本地 pc 使用任何 git 命令(我的公钥粘贴在 ~/.ssh/authorized_keys 中)
然而,我只是想知道如何避免每次使用 git 命令时输入密码。这样我就可以避免每次都输入密码。谢谢
来自 https://askubuntu.com/questions/362280/enter-ssh-passphrase-once 的响应
更新:似乎是 13.10 中的错误:
https://bugs.launchpad.net/ubuntu/+source/libpam-ssh/+bug/1247169
无论如何,运行以下命令,问题已为我解决: 如何修复
我通过输入以下命令修复了此问题:
$ ssh-agent bash
这将创建一个新的 bash 进程,允许您添加私钥。 添加新的私钥时,系统将提示您输入密码 一次,而且只有一次。
然后:
/$ ssh-add /home/username/.ssh/id_rsa Enter passphrase for /home/username/.ssh/id_rsa: Identity added:
home/username/.ssh/id_rsa (/home/username/.ssh/id_rsa)
。其中用户名是您的用户名。您可以使用$USER执行相同的操作 变量:
$ ssh-add /home/$USER/.ssh/id_rsa
问题已解决。
重复:
Git 为每次推送输入长密码
Git 一直问我要我的 ssh 密钥密码
编辑
我知道的唯一方法是使用expect
#!/usr/bin/expect -f
set timeout -1
spawn ssh -o PubkeyAuthentication=no host.example.com
expect -exact "Password: "
send -- "secretr"
expect {$s*} { interact }
并且可能处理 ssh-config 的 ProxyCommand 或使用更复杂的 python 版本,并允许将凭据保存在配置文件中。
请注意 - 唯一可接受的解决方案(安全和方便)是基于 ssh 密钥的身份验证。