(1)我想上传一些文件到服务器
for (( i=0 ; i < 23 ; i+=1 )); do echo mypassword | scp [email protected]:project/$i/train10000/finer_search_c_g ~/project/$i/train10000/ done
我希望通过pipe道我的密码scp,循环将被执行,而无需交互。 不过,它仍然要求我手动input密码。 我应该如何指定mypassword到scp?
(2)我不使用由ssh-keygen生成的authentication密钥,因为服务器实际上是一个群集的头节点。 我发现如果我使用ssh-keygen生成authentication密钥,〜/ .ssh下的文件将使节点之间的访问需要密码,我找不到解决scheme。 在使用身份validation密钥从群集外访问头节点时,是否可以使用空密码访问节点?
感谢致敬!
使用密钥文件。 将私钥文件放在客户端上,并使用ssh-agent将密钥文件加载到内存中,解密。 将公用密钥文件放在要访问的每个系统上。
使用authentication转发来创build不同主机之间的连接,而不会提示进行authentication。
scp / ssh将testinginputstream来检查它是否是TTY,如果不是,将尝试使用替代方法来获取密码,所以普通pipe道将无法工作(因为pipe道不是tty)。
您需要将公钥复制到要连接的系统上的.ssh / authorized_keys文件中。