带冒号的 SCP 用户名

SCP username with colon

为了通过 SSH 登录专用服务器,我使用以下命令:

ssh -p 49276 myusername:1001@server.address.net.com

我需要用户名后的:1001才能登录。

我现在正在尝试使用以下命令从该服务器中 scp 一些文件:

scp -P 49276 myusername:1001@server.address.net.com:/var/www /localfolder

但是当我这样做时,出现错误:

Could not resolve hostname myusername: nodename nor servname provided, or not known

我想这是因为我用户名后面的那个冒号。我将如何使用这些凭据进行 SCP?

这可能是一个复杂的方法,但我相信它对你的情况有用。

您可以在 ~/.ssh/config 文件中定义主机。您可以在此处指定用于特定主机名的用户名。例如 -

Host myhostname
  User myusername:1001
  HostName myhostname.com
  Port 49276

在您的 ~/.ssh/config 文件中,您将能够使用类似于此的 scp 命令 -

scp myhostname:/var/www /localfolder

主机将与配置文件中指定的用户和端口一起使用。


一个相当古老的 link,但仍然对 ssh 配置文件有用的信息:
http://nerderati.com/2011/03/17/simplify-your-life-with-an-ssh-config-file/

This is simply a feature of the Cisso ssh server implementation; it parses the user name, and if it contains a :[0-9]+ component then it understands it has to connect the session to the console port with the corresponding number.

从这里开始https://unix.stackexchange.com/questions/187658/integer-after-username-in-openssh-client-separated-by-colon

试试这个:

scp -P 49276 -o User=myusername:1001 server.address.net.com:/var/www /localfolder