我对 Linux 比较陌生。在 WSL2 上使用 Ubuntu。我使用 为 github 添加了一个没有密码的私钥ssh-add
。我在整个会议期间使用了几次,但第二天我无法连接。当我列出所有使用的密钥时,ssh-add -l
没有任何密钥。
我是否应该为每个会话添加密钥或为其创建自动化?或者这是 WSL 的正常(缺乏)持久性行为?
V 航站楼。 2.2.2
Mac OS X Lion 10.7.3
我已经按照ipsis verbis此处的步骤操作:
https://superuser.com/a/8110/72002
这有效,但是,如果我重新启动机器,它会再次提示输入密码!!!
我什至再添加一个,以确保它有效:
ssh-agent bash
ssh-add ~/.ssh/mykeywithoutextention
#Restart terminal
Run Code Online (Sandbox Code Playgroud)
重启后还是要求输入密码!!
似乎,正如这里发布的:http : //alchemycs.com/2011/08/mac-os-x-lion-terminal-and-ssh-how-to-start-ssh-agent-at-login/
当 Mac OS X 启动备份并在登录时启动 Terminal.app 时,在 Terminal.app 启动之前不会启动 ssh-agent
有没有人知道这可能是这里的问题,我们如何正确解决这个问题?
我在 Windows 上,经常需要通过 ssh 连接到 linux 机器。尽管我很想有一个备用的 ssh 客户端,但没有一个真正成为 Putty 的一部分。一件事或另一件事总是会损坏,即使在腻子中,小键盘也无法使用。无论如何,我想将腻子的窗口宽度设置为超过我的屏幕允许的宽度。所以我可以水平滚动查看它。原因是我运行 select * 命令,这些长记录占用了许多行,每行都会影响可读性。谢谢!
不久前在 StackOverflow 上,我问了这个关于 ssh-agent 和 crontab 的问题。我现在有一个关于 Linux 系统上的 ssh-agent 和 screen 的类似问题。
所以,在我的 Mac 上,ssh-agent 在系统启动时启动,所以我总是可以使用它。如果我使用的是 X-Windows,我认为在我的 linux (redhat el5/fedora) 下是正确的。但是,这是一台远程服务器机器,我总是通过 ssh 登录。
我希望正确设置 ssh 密钥,这样我就不必在 svn 更新或提交期间多次输入密码。我很高兴在每个会话中输入一次我的密码,并且我不鼓励我们的团队使用无密码的 ssh 密钥。
在短暂的闪光时刻,似乎在我的 .bash_profile 中执行“eval `ssh-agent -s`”,并在我注销时与一个命令杀死 ssh-agent 配对,会起作用。但是,我们大量使用screen来管理长时间运行的交互式程序和开发环境。如果您像我刚刚描述的那样启动和停止 ssh-agent,那么当您退出终端时它会被杀死,并且屏幕的子会话(曾经指代该 ssh-agent 实例)将被放弃。
那么......我怎么能成为一个控制台用户,谁使用屏幕,谁使用他的 ssh 密钥的密码,谁不必经常输入密码?
通常我有 ssh-agent 运行,我 ssh 到我的堡垒主机,然后打开一个 tmux 会话并通过它连接到其他盒子。密钥转发适用于我从那时起打开的任何会话。
如果我在关闭终端后恢复我的 tmux 会话,让我的笔记本电脑休眠,无论如何,我在堡垒会话上的密钥转发仍然有效,就像在任何新会话上转发一样。但是,现有的不起作用。
我的 bashrc 中有一个小东西可以在我恢复 tmux 时保持密钥转发工作,但是我无法弄清楚如何让它继续为 tmux 中打开的会话工作。
例如,我有 bastion01、dbhost01、dbhost02、webhost01 和 webhost02。
如果我打开与 bastion01 的连接,请在那里启动 tmux,然后连接到 dbhost01 和 webhost01 转发工作。如果我关闭该连接,重新连接并附加我现有的 tmux 会话,然后将连接添加到 dbhost02 和 webhost02,密钥转发在 02 框上有效,但在 01 上无效。
请帮忙!
首先,我检查了以下所有内容
但他们都没有帮助。所以,这是我的问题:
我可以从 A 到 B,或从 A 到 C,但不能从 A 到 B,然后从 B 到 C。当从 A 连接到 B 或 C 时,我总是使用ssh -A
强制 SSH 代理转发。
但是为什么我仍然无法在A -> B -> C
没有被要求输入密码的情况下进行连接?
更新:近三年后,同样的问题仍然困扰着我,但现在我已经缩小了问题的范围:
症状:我可以 ssh A -> B
, or A -> C
,但不能A -> B -> C
, or A -> C -> B
。
该主题准确描述了该问题 - SSH 代理转发不起作用。
从
解决 SSH 问题
https://confluence.atlassian.com/bitbucket/troubleshoot-ssh-issues-271943403.html
它说:
要列出您加载的密钥,请输入
ssh-add -l …
是否有可能在 Windows 登录时自动解锁我的私钥以进行 ssh 身份验证,并在(解锁)我的会话时(解锁)锁定它们?
目前我正在使用 msys 的 ssh-agent,但如果已经存在更好的解决方案,我也可以使用例如charade作为腻子选美的包装器进行映像。
此查询与 Git 没有直接关系,但由于 Git 支持的传输之一是 SSH,并且我正在尝试使用代理转发,我想我会要求澄清(手册页让我失望)
我正在尝试使用 Capistrano 自动化软件部署,我设法暂停了一些痛点(在部署之前预先播种已知主机等),但我遇到了以下情况。
我的团队以自己的身份登录服务器,个人用户帐户,每个人都在一个developers
组中,并且umask
是002
. 以上都不是真正相关的,只是说目的是确保我的团队始终可以像他们自己一样工作,而无需超级用户特权。
我们example.com
使用以下方法连接到服务器~/.ssh/config
:
Host example.com
User beaks
ForwardAgent yes
IdentityFile ~/.ssh/id_rsa_business
Run Code Online (Sandbox Code Playgroud)
初始登录工作正常,ssh example.com
打开与我的用户帐户的连接,一切正常。
问题出现在下一步,
git ls-remote git@github.com:project/repository.git
Run Code Online (Sandbox Code Playgroud)
这是使用前面提到的 Git+SSH 传输层(见上面的链接) - 通常应该使用我的转发代理密钥(我已经用 验证过env | grep SSH_AUTH_SOCK
)
响应是一个简单的“身份验证失败(公钥)另一端意外挂断”,我怀疑是因为当我github.com
作为他们的共享git
用户接近时,我的用户的代理没有被使用。
我也不能排除EC2
怪异(安全策略等) - 但在这种情况下,我会期望超时或连接失败。我非常有信心我正在击球github.com
- 而且他们不让我进入,因为我的代理没有beaks
为他们的git
用户提供我的钥匙。
如果我错过了任何内容,很高兴添加任何其他信息。
我忘记了我的 ssh 私钥的密码,但它仍然存储在 gnome-keyring 中,所以在我看来我应该能够恢复它。Seahorse 允许我从我的密钥环中恢复网站密码,但我没有找到恢复我的 ssh 密码的方法。有人能告诉我怎么做吗?
我创建这个问题只是为了提醒我,因为我通常每隔几年才设置一次 SSH 代理。
那么,假设使用类似 linux 的 shell 环境,如何在 Windows 下设置 SSH 代理?