我需要通过 ssh 进入运行 MobaSSH 的 Windows 7 机器作为其 SSH 守护程序,Windows 框中的用户名包含一个空格。我可以像这样在 OSX 终端上登录到 Windows 7 框:
ssh "Some User"@WindowsHost
所以我想我可以在 OSX 上使用 scp 命令在计算机之间传输文件,但是每当我做这样的事情时,我总是收到一个错误提示“无效的用户名”:
scp myfile "Some User"@WindowsHost:~/myfile
我调查了一下,发现 this question on stackoverflow ,但这主要是关于文件路径中的空格。
我确实找到了 a bug posted about this issue in a specific version of scp ,但我不确定如何在 OSX 上修补 scp。该补丁以 .c 文件的形式提供。
我最后的选择是在 Windows 7 机器上创建一个新用户名,并将我所有的配置文件设置转移给该新用户。考虑到我可以通过 ssh 而不是 scp 登录,这似乎是一个真正的麻烦。
有什么建议吗?
最佳答案
为您的 Mac 用户的 ssh 配置添加特殊配置,通常在 ~/.ssh/config 中
Host mySpaceyUsernameHost
User "Some User"
HostName WindowsHost
然后您应该能够使用该命名配置对您的文件进行 scp:
scp myfile mySpaceyUsernameHost:~/myfile
我刚刚在 OS X 10.7 (Lion) 上试过这个,它在一台 Mac 和另一台 Mac 上工作,而其他选项(引用或反斜杠转义)没有......所以就是这样。
关于windows - OSX 上的 scp 不允许用户名中有空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9425222/