别名ssh后,无法运行显式的ssh命令

时间:2017-01-03 15:38:26

标签: linux bash ubuntu ssh alias

我的mac机器上有一个ssh'ing到我的linux盒子的别名。 但我注意到一些非常奇怪的东西,或者我可能是愚蠢的。

当我使用别名时,它可以工作,但是当我使用别名代表什么时它不起作用。例如

My /etc/hosts on linux machine looks like this:
bos-mp9ps:~ xyz$ cat /etc/hosts
# BEGIN hosts added by Pulse
23.79.238.45   vpn.company.com
# END hosts added by Pulse
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost 

此外,我可以从私人家庭网络进入我的Linux机箱,但不能从星巴克等公共网络进入。你知道我是否必须为此更改任何内容?

bos-mp9ps:~ xyz$ command ssh xyz@172.19.37.47
The authenticity of host '172.19.37.47 (172.19.37.47)' can't be established.
ECDSA key fingerprint is SHA256:MQwHj9JTw5d2Vzbz5h5hw2KxmhKmREVGIcrY+PrBxQc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.19.37.47' (ECDSA) to the list of known hosts.
Password:
Last login: Thu Dec 29 15:18:10 2016
Agent pid 971
bos-mp9ps:~ xyz$

当我使用我的linux的盒子的IP地址登录它没有帮助,它带我到相同的位置

.Cells()

感谢您阅读

2 个答案:

答案 0 :(得分:4)

其他人已经回答了如何修复你的别名,但我认为最好的方法是完全省去别名并使用ssh配置文件,通常是~/.ssh/config。为了匹配你的别名,你会在其中添加这样的东西(假设它使用的是OpenSSH或类似的东西):

Host linux
  User xyz
  HostName bos-lpaw1
  ForwardAgent yes

有了这个,你就可以这样登录到计算机:

$ ssh linux

(你可以给它任何你想要的主机别名,它不一定是" linux")。

你为什么要这样做?有几个优点:

  1. 由于您没有像原始别名那样硬编码您登录的主机,因此您可以自由登录多台不同的计算机(但您可以通过为每台目标计算机创建一个别名来实现此目的,所以别名方法也可以支持这个。)。
  2. .ssh/configrsync也识别scp中描述的主机别名。因此,您可以自动执行rsync a.txt linux:b.txt之类的操作,将a.txt复制到Linux计算机并命名为b.txt
  3. 为了能够从公共网络进入您的计算机,您需要一种获取计算机IP地址的方法。您可以尝试使用DNS进行设置(虽然这可能很麻烦),或者如果您的IP不经常更改,您可以对其进行硬编码。当然,如果使用Network Adress Translation,您可能需要在调制解调器/路由器上设置端口转发,以便将到全局地址的传入连接转发到正确的本地计算机。

答案 1 :(得分:3)

问题

ssh别名为'ssh -A xyz@bos-lpaw1'

所以

ssh -A xyz@bos-lpaw1

转换为

ssh -A xyz@bos-lpaw1 -A xyz@bos-lpaw1

所以这个命令试图执行"命令" xyz@bos-lpaw1位于服务器xyz上的用户bos-lpaw1

解决方案

另一个别名

替换 alias ssh='ssh -A xyz@bos-lpaw1'

alias sshlpaw='ssh -A xyz@bos-lpaw1'

ssh是一个非常重要的程序,用别名覆盖它并不是一个好主意。

使用命令

防止别名

对于需要通常没有别名的ssh的情况,您可以输入:

command ssh -A xyz@bos-lpaw1

在您的终端。

使用.ssh / config

请参阅@ amaurea的优秀答案。