通过命令行连接远程主机时,通常要输入用户名加上主机 ip 的方式,尽管有一些图形化程序方便我们远程连接,但往往我们需要在连接服务器后进行一些命令行终端的继续操作(当然这个也同样有模拟终端的方式,但我们更倾向于一步走,
请牢记:
能用一行命令解决的不用两行
能用一个字符解决的不用两个
),这里介绍三种方式设置快速连接的命令。
1.修改 ssh 配置,命名主机
cd ~/.ssh
vi config
添加如下参数
HostName ipAddress
User userName
Port port
这样我们就可以通过 ssh hostName
进行连接
2.给命令行起别名
一个班级有 50 个人,每个人都有不同的名字,要记住这些人的名字很困难,但是如果让每个人都对应 1-50 的一个数字,我们就可以快速的定位一个单位(让计算机建立映射关系是很简单的事情)。
如我们想简化 'ls -all',来列出文件的所有内容,可以通过alias aliasName ='ls -all'
来修改,如我想通过 ll 来等价'ls -all',便可以通过如下命令 alias ll ='ls -all'
来实现,这在我们重复的敲入一些长命令的时候是非常有用的。
我们可以用 alias sshG ='ssh root@ipAddress'
来重命名我们的 google 服务器连接,这样每次输出 sshG 再输入密码便可以了,当然,免输入密码的原理也是类似的,但是最好还是要手动输入密码确认一下。
通过配置用户根目录下的 .bash_aliases
来实现,以后在别的机器登录的时候只要将这个文件拷贝过来就可以了(将自己的配置放到诸如 github 上,需要的时候直接 pull)。
具体命令:vi ~/.bash_aliases
在这里添加你要自定义的命令
格式如下:alias sshG='ssh root@gopherinchina.com'
(至于为什么每一行前面都要加个 alias 这种重复的操作,我不知道:))
update configsource .bash_aliases
3.脚本
这个就很好用,单用来建立连接似乎是有些大材小用了。
当我们在命令行输入'ls'时,本质上我们是启动了一个名为 ls 的程序。这里我们仿照这种方式,通过 sh 建立一个可执行程序,在这个可执行程序的内部我们继续执行一系列的操作。
新建 sshG.sh 文件,在文件中添加如下内容
Host data1
HostName 101.37.246.151
Port 22
User bigdata
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa