在我的Bash脚本中,我使用SCP将一些文件复制到另一台计算机。
但是我在我所有的主机上都使用了密钥链程序。当ssh-代理已经被密钥链加载时,就没有问题了。
但是,当远程主机的密钥尚未加载时,连接之后,密钥链将显示一条消息来添加密钥,但不要询问密码.文件没有被复制..。而且连接还没有关闭。
* keychain 2.7.1 ~ http://www.funtoo.org
* Waiting 5 seconds for lock...
* Found existing ssh-agent: 31914
* Adding 1 ssh key(s): /root/.ssh/id_rsa使用SSH时,如果没有加载密钥,则正确显示密码提示:
* keychain 2.7.1 ~ http://www.funtoo.org
* Found existing ssh-agent: 27551
* Adding 1 ssh key(s): /root/.ssh/id_rsa
Enter passphrase for /root/.ssh/id_rsa:是否有检测文件是否已被复制的方法/解决方法?
事实上,根本原因是我认为遥远的.bashrc .当.bashrc来源时,键链就会启动。
编辑:密钥链有一个--noask选项。所以SCP命令可以使用这个选项,因为没有询问密码,但是我确实需要被问及SSH的密钥。
在目标服务器上,是否可以检测是否启动ssh或scp命令?
发布于 2015-07-23 15:04:44
假设您控制了远程系统上的.bashrc文件,那么为什么不改变基于会话是否是tty启动密钥链的方式呢?通过这种方式,您可以像使用scp (no )时所描述的那样,使用--noask选项启动它,而不使用ssh选项。
if [ -t 1 ] then
<start keychain normally>
else
<start keychain with --noask>
fihttps://stackoverflow.com/questions/31313815
复制相似问题