我想与我的服务器建立 ssh 连接,但我不想输入密码。我想将输出保存到文件中,如下所示:
$ ssh [email protected] -p 22 1>output 2>&1
但是当我运行它时,输出会显示给我:
[email protected]'s password:
我希望此状态重定向到文件而不显示给我,然后立即关闭 ssh 连接...
我应该怎么办?
答案1
你没有做错什么,只是密码输入比较特殊而已。
ssh
假设您不希望密码输入妨碍您进行任何操作真的想要管道,因此它用于/dev/tty
密码提示,而不是stdout
.
您可以告诉ssh
不要询问密码,如下所示:
ssh -o BatchMode=yes [email protected]
如果没有可用的密钥或现有连接,它现在就会退出。
不过,我认为没有直接的方法来捕获“密码:”提示文本。
答案2
不要使用密码。使用带有空密码的公钥-私钥。
ssh -2 -I /home/localloginame/.ssh/astroboy -l 你的登录主机名 \ "cd inbox; ls -l; exit"
这是什么宇宙小子?这是一个文件。这是一个私钥。制作密钥时,您最终会得到一个私有部分:/home/localloginname/.ssh/astroboy 和一个公共部分:/home/localloginname/.ssh/astroboy.pub
现在如何制作该密钥.... /???/ssh/bin/key-gen -t dsa astroboy
然后它要求输入密码。您可以输入空密码。它会抱怨,但继续前进。然后你就拥有了。
我希望如果我告诉你错了,有人会纠正我。