我的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()
感谢您阅读
答案 0 :(得分:4)
其他人已经回答了如何修复你的别名,但我认为最好的方法是完全省去别名并使用ssh配置文件,通常是~/.ssh/config
。为了匹配你的别名,你会在其中添加这样的东西(假设它使用的是OpenSSH或类似的东西):
Host linux
User xyz
HostName bos-lpaw1
ForwardAgent yes
有了这个,你就可以这样登录到计算机:
$ ssh linux
(你可以给它任何你想要的主机别名,它不一定是" linux")。
你为什么要这样做?有几个优点:
.ssh/config
和rsync
也识别scp
中描述的主机别名。因此,您可以自动执行rsync a.txt linux:b.txt
之类的操作,将a.txt
复制到Linux计算机并命名为b.txt
。为了能够从公共网络进入您的计算机,您需要一种获取计算机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
在您的终端。
请参阅@ amaurea的优秀答案。