0

リモートサーバーをsshに接続したいコマンドがあります。私のコマンドは

"ssh -o PasswordAuthentication=no $REMOTE_HOST_IP > /dev/null 2>&1"

これが機能すると、本当のメッセージは「許可が拒否されました」になります。これは本当のメッセージですが、コンソールにメッセージを表示したくないので、/ dev / nullにリダイレクトしました。しかし、まだ来ています。問題は何ですか。

編集:私はあなたが言うように/ dev / nullの前に2&1を取ってみましたが、それでも機能しませんが、それが私の友人のコンピューターで機能するのは奇妙です

解決済み:問題は、コマンドを変数に割り当てて$ commandとして実行したことです。しかし、 ""の間に設定すると、リダイレクトが機能しません。

4

4 に答える 4

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).
于 2012-08-13T13:29:20.963 に答える
1

試す

ssh -o PasswordAuthentication=no $REMOTE_HOST_IP &>/dev/null
于 2012-08-13T13:28:52.147 に答える
0

代わりにこれを試してください (2>&1リダイレクトする stderr を /dev/null に送信する前に移動します):

 "ssh -o PasswordAuthentication=no $REMOTE_HOST_IP 2>&1 > /dev/null"

で stderr を stdout にリダイレクトしていることに注意してください2>&1。stderr を /dev/null にリダイレクトしたいだけなら、単純に2> /dev/null.

IO リダイレクションに関する良い情報はこちらです。

于 2012-08-13T13:25:44.850 に答える
0

ssh -o PasswordAuthentication=no $REMOTE_HOST_IP 2> /dev/null

于 2012-08-13T13:27:37.037 に答える