为什么我不能scp到特定的机器?

时间:2016-05-12 10:08:19

标签: linux ssh scp

我有一台机器,我似乎无法scp到但我可以通过SSH进入。我试过从两台不同的机器上划线。我得到的基本输出是:

scp /tmp/file dest@IP:/tmp

Password:
IP Address:

当我向scp添加一些调试标志时,我可以看到我收到一些失败消息,但我不确定它们是什么意思:

Password:
debug2: input_userauth_info_req
debug2: input_userauth_info_req: num_prompts 0
debug1: Authentication succeeded (keyboard-interactive).
Authenticated to <IP> ([<IP>]:22).
debug2: fd 4 setting O_NONBLOCK
debug2: fd 5 setting O_NONBLOCK
debug1: channel 0: new [client-session]
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug2: client_session2_setup: id 0
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
debug2: channel 0: request env confirm 0
debug1: Sending command: scp -v -t /tmp
debug2: channel 0: request exec confirm 1
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug2: channel 0: rcvd adjust 2097152
debug2: channel_input_status_confirm: type 99 id 0
debug2: exec request accepted on channel 0
IP Address:
debug2: channel 0: read<=0 rfd 4 len 0
debug2: channel 0: read **failed**
debug2: channel 0: close_read
debug2: channel 0: input open -> drain
debug2: channel 0: ibuf empty
debug2: channel 0: send eof
debug2: channel 0: input drain -> **closed**
user:current_dir # debug2: channel 0: write **failed**
debug2: channel 0: close_write
debug2: channel 0: send eow
debug2: channel 0: output open -> **closed**
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug2: channel 0: rcvd eof
debug2: channel 0: rcvd close
debug2: channel 0: almost dead
debug2: channel 0: gc: notify user
debug2: channel 0: gc: user detached
debug2: channel 0: send close
debug2: channel 0: is dead
debug2: channel 0: garbage collecting
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 2660, received 2380 bytes, in 0.1 seconds
Bytes per second: sent 40626.2, received 36349.8
debug1: Exit status 0

任何信息都将非常感谢!

3 个答案:

答案 0 :(得分:0)

scp不使用sftp协议,但需要scp存在并安装在接收器上(它将在接收主机的shell中生成scp命令)

答案 1 :(得分:0)

Authenticated to <IP> ([<IP>]:22).
...
debug1: Entering interactive session.
...
debug2: exec request accepted on channel 0
IP Address:

这些都表明您已成功通过远程系统验证并在那里启动了会话。 “IP地址:”提示必须来自会话中远程系统上运行的程序。

简而言之,远程系统会在您登录时自动启动专用程序。这会阻止通过ssh启动的scp和其他程序工作,除非程序执行special steps to permit them to work

我的猜测是远程系统设置为“jump server”。它会提示您输入要连接的另一台计算机的IP地址。当您键入IP地址时,它将与该系统建立ssh连接(或重新启动它或其他东西)。

无论程序的目的是什么,在不知道如何启动该程序的情况下,都无法说明如何解决它。如果您有合法的需要将文件复制到系统或从系统复制文件,则应与远程系统的管理员联系。

答案 2 :(得分:0)

这是因为我试图scp to.bashrc的机器上的.bashrc正在寻找一个带有 echo var 命令的别名shell脚本。删除回声解决了这个问题。