2016-12-22 9 views
1

(CentOS6を実行しているVM上で)autosshを実行しようとしていますが、すぐにヘルプメッセージが表示されます。これはシステム上の問題だと思います。なぜなら、別のコンピュータ(Ubuntu 14.04を実行している)で全く同じパラメータを使って実行するとうまく動作するからです。同じコマンドを実行しても、autosshの代わりにsshを使ってもうまくいきます。だから私は何かが間違っているかどうかを調べるためにstraceを試しました。しかし、私はそれが何であるかわからない。何か案は?ここでautosshが終了ステータス1で失敗し、エラーメッセージが表示されない

はautosshコマンドです:autossh -oStrictHostKeyChecking=no -oServerAliveInterval=15 -oServerAliveCountMax=4 -L 3130:localhost:3130 -N -i /path/to/some.pem [email protected]

ここでstraceの出力は、(myserverは前のコマンドと同じパラメータが含まれてい.ssh/config内のエントリであることに注意)です。

execve("/usr/local/bin/autossh", ["autossh", "myserver"], [/* 55 vars */]) = 0 
brk(0)         = 0xefc000 
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f26193cc000 
access("/etc/ld.so.preload", R_OK)  = -1 ENOENT (No such file or directory) 
open("/etc/ld.so.cache", O_RDONLY)  = 3 
fstat(3, {st_mode=S_IFREG|0644, st_size=36751, ...}) = 0 
mmap(NULL, 36751, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f26193c3000 
close(3)        = 0 
open("/lib64/libnsl.so.1", O_RDONLY) = 3 
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\[email protected]\0\0\0\0\0\0"..., 832) = 832 
fstat(3, {st_mode=S_IFREG|0755, st_size=113432, ...}) = 0 
mmap(NULL, 2198192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2618f95000 
mprotect(0x7f2618fab000, 2093056, PROT_NONE) = 0 
mmap(0x7f26191aa000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7f26191aa000 
mmap(0x7f26191ac000, 6832, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f26191ac000 
close(3)        = 0 
open("/lib64/libc.so.6", O_RDONLY)  = 3 
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\356\1\0\0\0\0\0"..., 832) = 832 
fstat(3, {st_mode=S_IFREG|0755, st_size=1920936, ...}) = 0 
mmap(NULL, 3750152, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2618c01000 
mprotect(0x7f2618d8b000, 2097152, PROT_NONE) = 0 
mmap(0x7f2618f8b000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18a000) = 0x7f2618f8b000 
mmap(0x7f2618f90000, 18696, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2618f90000 
close(3)        = 0 
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f26193c2000 
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f26193c1000 
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f26193c0000 
arch_prctl(ARCH_SET_FS, 0x7f26193c1700) = 0 
mprotect(0x7f2618f8b000, 16384, PROT_READ) = 0 
mprotect(0x7f26191aa000, 4096, PROT_READ) = 0 
mprotect(0x7f26193cd000, 4096, PROT_READ) = 0 
munmap(0x7f26193c3000, 36751)   = 0 
write(2, "usage: autossh [-V] [-M monitor_"..., 69usage: autossh [-V] [-M monitor_port[:echo_port]] [-f] [SSH_OPTIONS] 
) = 69 
write(2, "\n", 1 
)      = 1 
write(2, " -M specifies monitor port. M"..., 238 -M specifies monitor port. May be overridden by environment 
     variable AUTOSSH_PORT. 0 turns monitoring loop off. 
     Alternatively, a port for an echo service on the remote 
     machine may be specified. (Normally port 7.) 
) = 238 
write(2, " -f run in background (autoss"..., 85 -f run in background (autossh handles this, and does not 
     pass it to ssh.) 
) = 85 
write(2, " -V print autossh version and"..., 39 -V print autossh version and exit. 
) = 39 
write(2, "\n", 1 
)      = 1 
write(2, "Environment variables are:\n", 27Environment variables are: 
) = 27 
write(2, " AUTOSSH_GATETIME - how lo"..., 259 AUTOSSH_GATETIME - how long must an ssh session be established 
          before we decide it really was established 
          (in seconds). Default is 30 seconds; use of -f 
          flag sets this to 0. 
) = 259 
write(2, " AUTOSSH_LOGFILE  - file t"..., 107 AUTOSSH_LOGFILE  - file to log to (default is to use the syslog 
          facility) 
) = 107 
write(2, " AUTOSSH_LOGLEVEL - level "..., 49 AUTOSSH_LOGLEVEL - level of log verbosity 
) = 49 
write(2, " AUTOSSH_MAXLIFETIME - set th"..., 65 AUTOSSH_MAXLIFETIME - set the maximum time to live (seconds) 
) = 65 
write(2, " AUTOSSH_MAXSTART - max ti"..., 69 AUTOSSH_MAXSTART - max times to restart (default is no limit) 
) = 69 
write(2, " AUTOSSH_MESSAGE  - messag"..., 74 AUTOSSH_MESSAGE  - message to append to echo string (max 64 bytes) 
) = 74 
write(2, " AUTOSSH_PATH  - path t"..., 53 AUTOSSH_PATH  - path to ssh if not default 
) = 53 
write(2, " AUTOSSH_PIDFILE  - write "..., 49 AUTOSSH_PIDFILE  - write pid to this file 
) = 49 
write(2, " AUTOSSH_POLL  - how of"..., 70 AUTOSSH_POLL  - how often to check the connection (seconds) 
) = 70 
write(2, " AUTOSSH_FIRST_POLL - time b"..., 71 AUTOSSH_FIRST_POLL - time before first connection check (seconds) 
) = 71 
write(2, " AUTOSSH_PORT  - port t"..., 61 AUTOSSH_PORT  - port to use for monitor connection 
) = 61 
write(2, " AUTOSSH_DEBUG  - turn l"..., 104 AUTOSSH_DEBUG  - turn logging to maximum verbosity and log to 
          stderr 
) = 104 
write(2, "\n", 1 
)      = 1 
exit_group(1)       = ? 
+++ exited with 1 +++ 

答えて

-1

はさあ... autossh

write(2, "usage: autossh [-V] [-M monitor_"..., 69usage: autossh [-V] [-M monitor_port[:echo_port]] [-f] [SSH_OPTIONS] 

で終了します。これは間違ったアルファムtsとそれは構文がどのように見えるかをあなたに説明しようとしています。間違っているかを確認するには、あなたが試すことができますいくつかあります。

  • sshから、より詳細なログを見るためにssh-vvvスイッチを使用してください。
  • 環境変数AUTOSSH_DEBUGを使用して、autosshからデバッグログを取得します。
+0

いや、それはできません。私が書いたように、全く同じコマンドがUbuntuを実行している別のサーバ上で動作します。 '-vvv'と' AUTOSSH_DEBUG'を使ってみましたが、それらが考慮される前に終了するようです。実行されるのは 'autossh -V'だけですが、これはあまり有用ではありません。 – Johnny

+0

CentOS 6はかなり古くなっているので、多少異なるかもしれない古いバージョンがおそらくあります。 – Jakuje

+1

インフラストラクチャ全体をアップグレードしないことをお勧めします。もし選択肢がなければ私はそれをしますが、それでも... – Johnny

2

CentOS Linux 7のautossh 1.4eと全く同じ問題が発生しました。すぐに停止し、SSHに接続しようとしてもヘルプを表示しました。

ソリューションは、コマンドラインで-M 0を指定することでした:

autossh -M 0 \ 
    -oStrictHostKeyChecking=no \ 
    -oServerAliveInterval=15 \ 
    -oServerAliveCountMax=4 \ 
    -L 3130:localhost:3130 \ 
    -N -i /path/to/some.pem [email protected] 
+0

このソリューションは、Arch上で動作するautossh 1.4eでの私の問題を解決しました。ありがとう! – kdar

関連する問題