我有一个想要用ssh连接远程服务器的命令。我的命令是
"ssh -o PasswordAuthentication=no $REMOTE_HOST_IP > /dev/null 2>&1"
当这工作时,真正的消息来自“权限被拒绝”。这是真正的消息,但我不想在控制台上看到消息,所以我将其重定向到/dev/null.But仍然来了。问题是什么
编辑: 我按照你的说法尝试并在/ dev / null之前使用2& 1但仍然无法正常工作。但奇怪的是它适用于我的朋友计算机
已解决:问题是我将命令分配给变量并将其作为$ command.But运行,当它设置为“”重定向不起作用时
答案 0 :(得分:2)
查看-n
选项
-n Redirects stdin from /dev/null (actually, prevents reading from stdin). This must be used when ssh is run in the background. A common trick is to use this to run X11 programs on a remote machine. For example, ssh -n shadows.cs.hut.fi emacs & will start an emacs on shadows.cs.hut.fi, and the X11 connection will be automatically forwarded over an encrypted channel. The ssh program will be put in the background. (This does not work if ssh needs to ask for a password or passphrase; see also the -f option.)
甚至在-N
-N Do not execute a remote command. This is useful for just for‐ warding ports (protocol version 2 only).
答案 1 :(得分:0)
尝试这样做(移动2>&1
重定向stderr,然后再发送到/ dev / null):
"ssh -o PasswordAuthentication=no $REMOTE_HOST_IP 2>&1 > /dev/null"
请注意,您正使用2>&1
将stderr重定向到stdout。如果您只想将stderr重定向到/ dev / null,则只需使用2> /dev/null
。
关于IO Redirection here的良好信息。
答案 2 :(得分:0)
ssh -o PasswordAuthentication=no $REMOTE_HOST_IP 2> /dev/null
答案 3 :(得分:0)
尝试
ssh -o PasswordAuthentication=no $REMOTE_HOST_IP &>/dev/null