.+i+;I:
scp是什么意思?
我正在尝试将文件从我的笔记本电脑(OSX 10.6)传输到我学校的 Linux 服务器(RedHat 5)。Ssh 可以正常使用公钥,但当我尝试传输带有文本的文件时,scp file.txt school:~
scp.+i+;I:
会以代码 1 退出。
谷歌搜索显示代码 1 是一个一般错误,这没有什么帮助。
答案1
我很确定这不是错误代码。
您的远程 shell 是否“干净”?换句话说,即使对于非交互式会话,它是否也会输出 motd 样式的文本?
简单的测试方法(从 rsync 手册页中窃取):
$ ssh remotehost /bin/true | wc 0 0 0
如果您得到的不是一行零,则表明您的 shell 不干净,除非清理干净,否则无法与 scp 配合使用。由于它正在为非交互式会话输出文本,因此可能需要管理员级别的干预才能修复。
编辑:我已验证 scp 的行为与我描述的完全一致。如果 shell 在非交互式会话中返回数据,则该数据将在客户端返回,并且 scp 会以返回代码“1”退出。您描述的字符串在我看来就像终端格式代码。
答案2
如果您在 ssh 中使用公钥,那么您也需要为 scp 指定它:
scp -i [path to your public key file] file.txt school:~