Docker容器学习梳理 - SSH方式登陆容器

时间:2024-05-21 10:37:14

在平时运维工作中,通过设置ssh别名来访问远程系统,可以节省不少时间。通过ssh为频繁访问的系统创建ssh别名,这样就不必记住所有不同的用户名、主机名、SSH 端口号和 IP 地址等。此外,它避免了在ssh到linux服务器时重复输入相同的用户名、主机名、IP 地址、端口号。

通过情况下,我们使用ssh连接远程服务器时,会用到"端口号"、"用户名" 和 "IP地址" 或 "主机名":

[root@python2 ~]# ssh -p22 kevin@172.16.60.205
kevin@172.16.60.205's password:
[kevin@web-node01 ~]$ [root@python2 ~]# ssh -p 22 kevin@web-node01
kevin@web-node01's password:
[kevin@web-node01 ~]$

其中:
22     是端口号,
kevin      是远程系统的用户名,
172.16.60.205      是远程系统的IP,
web-node01      是远程系统的主机名(前提是可以在本机ping通这个主机名)。

下面介绍两个设置ssh别名的方法:

方法一、使用 SSH 配置文件

 使用 ssh 默认配置文件来创建 ssh 别名。为此,编辑 ~/.ssh/config 文件(如果此文件不存在,只需创建一个)。在当前用户家目录的.ssh/config文件中添加所有远程主机的详细信息

[root@python2 ~]# vim ~/.ssh/config
Host webserver
HostName 172.16.60.205
User kevin
Port 8888
Host dnsserver
HostName dns.bo.cn
User root
Host dbserver
HostName 172.16.60.210
User shibo
Port 22222

然后就可以使用这些ssh别名进行远程服务器的连接了

[root@python2 ~]# ssh webserver
[root@python2 ~]# ssh dnsserver
[root@python2 ~]# ssh dbserver

需要特别注意:
上面配置只使用于当前用户。如果要为所有用户(系统范围内)提供别名,那么就需要在/etc/ssh/ssh_config 文件中添加以上几行的内容。还可以在 SSH 配置文件中添加许多其他内容。例如,可以配置基于SSH密钥的身份验证,说明SSH 密钥文件的位置,如下所示:

Host webserver
HostName 172.16.60.140
User kevin
IdentityFIle ~/.ssh/id_rsa_remotesystem

方法二: 使用 Bash 别名

这是创建ssh别名的一种应急变通的方法,可以加快通信的速度。你可以使用alias命令使这项任务更容易。打开 ~/.bashrc 或者 ~/.bash_profile 文件:

[root@python2 ~]# vim ~/.bashrc
alias webserver='ssh -p8888 kevin@172.16.60.205'
alias dnsserver='ssh root@dns.bo.cn'
alias dbserver='ssh -p22222 shibo@172.16.60.210'
alias haha='ssh -p6666 kevin@172.16.60.140 -i ~/.ssh/id_rsa_remotesystem'

使用命令应用更改:

[root@python2 ~]# source ~/.bashrc

然后直接使用别名就可以连接了:

[root@python2 ~]# webserver
[root@python2 ~]# dnsserver
[root@python2 ~]# dbserver
[root@python2 ~]# haha

如下面配置示例:

[root@kevin ~]# cat /root/.bashrc
# .bashrc # User specific aliases and functions alias rm='rm -i'
alias vi='vim'
alias cp='cp -i'
alias mv='mv -i'
alias jk='ssh 192.168.10.146'
alias jk3='ssh 192.168.11.146'
alias jk4='ssh 192.168.11.147'
alias xps='ssh 192.168.11.217'
export TERM=xterm
unset SSH_ASKPASS [root@kevin ~]# jk
Last login: Mon Jul 22 10:19:51 2019 from 172.20.20.65
[root@jenkins ~]#