目前我正在作为程序员工作,因此需要不断地将我的软件上传到远程系统进行testing。 我有大约7台机器需要接收所有的拷贝。
目前,我有一个简短的bash脚本,用scp为每个远程机器执行传输:
echo -e "\nUpdating Taiwan Machine" scp {file1,file} bschlinker@taiwan:/home/bschlinker/ echo -e "\nUpdating Wisconsin Machine" scp -P 2400 {file1,file2} bschlinker@wisconsin:/home/bschlinker/
我痛苦地提示input每台机器的密码。 我知道我可以用SSH密钥解决这个问题 – 但是我不想通过密钥对远程机器进行无密码validation。 因此,我的密钥设置在我的SSH密钥上。 我在读完一次input密码之后,会在当前terminal会话的其余部分保持活动状态。 真的吗? 如果没有,有什么想法?
如果您运行的是SSH代理程序(例如,名为ssh-agent
的聪明命令),则可以将密钥添加到代理程序中,SSH客户端将与代理程序通信以从中获取密钥 。
你需要SSH-AGENT。 然后,根据您的操作系统,您可以将其configuration为在您login时启动并提示您input密码。 之后,只要您login,它将提供与您的密钥ssh会话。
SSH-AGENT还可以做更聪明的事情 – 如果你使用ssh访问一台机器,从那台机器ssh到另一台你也拥有你的公钥的服务器上,第二台机器也将通过代理(它的所谓的代理转发)。