钥匙串程序的 SCP 问题
Scp issue with Keychain program
在我的 Bash 脚本中,我使用 SCP 将一些文件复制到另一台机器。
但我在所有主机上都使用钥匙串程序。
当 ssh-agent 已经被 Keychain 加载时,就没有问题了。
但是,当远程主机的密钥尚未加载时,连接后,Keychain 会显示一条消息以添加密钥,但从不询问密码...文件未被复制...并且连接未关闭。
* 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:
有没有way/workaround检测文件是否被复制?
事实上,根本原因是遥远的 .bashrc 我认为......钥匙串是在 .bashrc 被获取时启动的。
编辑:钥匙串有一个 --noask
选项。所以 SCP 命令适用于此选项,因为没有询问密码,但我确实需要询问有关 SSH 密钥的信息。
在目标服务器上,是否可以检测是否启动了 ssh 或 scp 命令?
假设您可以控制远程系统上的 .bashrc 文件,为什么不根据会话是否为 tty
来更改启动钥匙串的方式呢?这样您就可以使用 --noask
选项启动它,正如您在使用 scp(无 tty)时所描述的那样,而没有 ssh 的该选项。
if [ -t 1 ] then
<start keychain normally>
else
<start keychain with --noask>
fi
在我的 Bash 脚本中,我使用 SCP 将一些文件复制到另一台机器。
但我在所有主机上都使用钥匙串程序。 当 ssh-agent 已经被 Keychain 加载时,就没有问题了。
但是,当远程主机的密钥尚未加载时,连接后,Keychain 会显示一条消息以添加密钥,但从不询问密码...文件未被复制...并且连接未关闭。
* 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:
有没有way/workaround检测文件是否被复制?
事实上,根本原因是遥远的 .bashrc 我认为......钥匙串是在 .bashrc 被获取时启动的。
编辑:钥匙串有一个 --noask
选项。所以 SCP 命令适用于此选项,因为没有询问密码,但我确实需要询问有关 SSH 密钥的信息。
在目标服务器上,是否可以检测是否启动了 ssh 或 scp 命令?
假设您可以控制远程系统上的 .bashrc 文件,为什么不根据会话是否为 tty
来更改启动钥匙串的方式呢?这样您就可以使用 --noask
选项启动它,正如您在使用 scp(无 tty)时所描述的那样,而没有 ssh 的该选项。
if [ -t 1 ] then
<start keychain normally>
else
<start keychain with --noask>
fi