在ssh授权密钥中使用命令会破坏SFTP功能

在ssh授权密钥中使用命令会破坏SFTP功能,ssh,sftp,openssh,Ssh,Sftp,Openssh,场景1:使用RSA身份验证,将hostA sftp文件作为user1发送到hostB和从hostB发送出去。这个很好用 场景2:为了只允许user1从hostA在hostB上运行特定命令,我在hostB上的authorized_keys文件中添加了command=“somescript”。这工作正常,但现在从主机A到主机B的SFTP已断开 hostA# sftp -v user1@hostB .... .... debug1: Sending subsystem: sftp debug1: cl

场景1:使用RSA身份验证,将hostA sftp文件作为user1发送到hostB和从hostB发送出去。这个很好用

场景2:为了只允许user1从hostA在hostB上运行特定命令,我在hostB上的authorized_keys文件中添加了command=“somescript”。这工作正常,但现在从主机A到主机B的SFTP已断开

hostA# sftp -v user1@hostB
....
....
debug1: Sending subsystem: sftp
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
Transferred: sent 3120, received 2720 bytes, in 0.3 seconds
Bytes per second: sent 10837.6, received 9448.1
debug1: Exit status 0
Connection closed
场景3:从hostB的授权密钥中删除命令。SFTP开始运作良好


知道为什么在授权密钥中指定命令会破坏sftp吗?

我对这个问题的答案很感兴趣(很可能是您的命令正在运行,而不是sftp子系统,但我无法在权威答案中回答)--但我投票赞成将它移到superuser.stackexhage,因为它实际上与编程无关。什么是
somescript
?如果是创建输出而没有启动
sftp服务器
,那么很明显您破坏了协议。我对这个问题的答案感兴趣(很可能您的命令正在运行,而不是在运行sftp子系统,但我无法给出权威答案)--但我投票赞成将它移到superuser.stackexhage,因为它实际上与编程无关。什么是
somescript
?如果是创建输出而没有启动
sftp服务器
,那么很明显您破坏了协议。