如何将 ssh 的输出重定向到文件

如何将 ssh 的输出重定向到文件

我想与我的服务器建立 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

然后它要求输入密码。您可以输入空密码。它会抱怨,但继续前进。然后你就拥有了。

我希望如果我告诉你错了,有人会纠正我。

相关内容