运维管理 ·

ssh基本管理和配置文件的使用

SSHD服务
SSH 协议:安全外壳协议。为 Secure Shell 的缩写。SSH 为建立在应用层和传输层基础上的安全协议。
sshd服务使用SSH协议可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)都是极为不安全的,并且会使用明文传送密码。
OpenSSH软件包,提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务。
安装包:
OpenSSH 服务需要4 个软件包

[root@work63 Packages]# ls openssh*
openssh-5.3p1-94.el6.x86_64.rpm openssh-clients-5.3p1-94.el6.x86_64.rpm
openssh-askpass-5.3p1-94.el6.x86_64.rpm openssh-server-5.3p1-94.el6.x86_64.rpm

每个软件包的作用:
openssh-5.3p1-94.el6.x86_64.rpm:包含OpenSSH 服务器及客户端需要的核心文件
openssh-clients-5.3p1-94.el6.x86_64.rpm:OpenSSH 客户端软件包
openssh-server-5.3p1-94.el6.x86_64.rpm:OpenSSH 服务器软件包

[root@work63 Packages]# rpm -qpi openssh-5.3p1-94.el6.x86_64.rpm
[root@work63 ~]# rpm -qa | grep openssh
openssh-server-5.3p1-94.el6.x86_64
openssh-5.3p1-94.el6.x86_64
openssh-clients-5.3p1-94.el6.x86_64
openssh-askpass-5.3p1-94.el6.x86_64

OpenSSH 配置文件
OpenSSH 常用配置文件有两个/etc/ssh/ssh_config 和 /etc/ssh/sshd_config
ssh_config 为客户端配置文件
sshd_config 为服务器端配置文件

服务启动和关闭

方法1:

[root@work63 ~]# service sshd restart | start | stop | status | reload

方法2:

[root@work63 ~]# /etc/init.d/sshd start | stop | restart | status | reload

开机自动启动服务:

[root@work63 ~]# chkconfig sshd on
[root@work63 ~]# chkconfig --list sshd
sshd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
[root@work63 ~]# chkconfig sshd off
[root@work63 ~]# chkconfig --list sshd
sshd 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭

SSH运程登录:身份验证
(1)口令验证
ssh [远程主机用户名] @[远程服务器主机名或IP地址]

如果用root进程登录远程主机可以省略用户名:
[root@work63 ~]# ssh 192.168.99.112
The authenticity of host '192.168.99.112 (192.168.99.112)' can't be established.
RSA key fingerprint is 4c:72:24:25:ca:13:69:06:a8:77:38:6d:cf:2c:66:76.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.99.112' (RSA) to the list of known hosts.
root@192.168.99.112's password:

普通用户

[root@work64 ~]# useradd rm
[root@work64 ~]# echo 123456 | passwd --stdin rm

更改用户 rm 的密码 。
passwd: 所有的身份验证令牌已经成功更新。

[root@work63 ~]# ssh rm@192.168.99.112
第一次登录服务器时系统没有保存远程主机的信息,为了确认该主机身份会提示用户是否继续连
接,输入yes 后登录,这时系统会将远程服务器信息写入用户主目录下的$HOME/.ssh/known_hosts 文件中,下次再进行登录时因为保存有该主机信息就不会再提示了

[root@work63 ~]#cat ./.ssh/known_hosts
192.168.99.112 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzTNFSEIzwAVbEVyH147K1Na+jyYXtOr0JqPRzLn8wvnieFuKW0e7
Ad2RmfZIVqwzA+NmBEMsAeiJAzlX+4hDB7Gt7f/04QR8pVV0CHt6lacaLhECHHDGkdE6QUfFYI1LhUPG3y7kOq+dXBnn2YxNCf+jMhJ
5oyaqLwyXOZf7wk4QhdnHq0fRugUB6Oae6iNbN5hV+i5Ph4GlqCcTveSsn9oJE7BiafPhL0IIHyYcpU29Ut38V4oxcB4M8JUEzOfZyJk
mcUHnJGzFGGTISzhWogWeTbXLh1/7GmlcWS0PJG/vx9ZqbtuOGqHMrWS6EDxgTYeP7jWXcF1sCK6JAvuoFQ==

或:ssh -l [远程主机用户名] [远程服务器主机名或IP 地址]
例:

[root@work63 ~]# ssh -l rm 192.168.99.112
-l login_name

先整体看一下服务器端的配置文件
注:参数前面有#,表示是默认值。 当然#号也表示注释。/etc/ssh/sshd_config 配置文件

Port 22
# SSH 预设使用 22 这个port,也可以使用多个port,即重复使用 port 这个设定项目!
# 例如想要开放 sshd 端口为 22和 222 ,则多加一行内容为: Port 222 即可
# 然后重新启动 sshd 这样就好了。 建议大家修改 port number 为其它端口。防止别人暴力破解。
例:修改sshd服务默认监听的端口为22和222

[root@work63 ~]# vim /etc/ssh/sshd_config

改:
Port 22
为:
Port 22
Port 222

[root@work63 ~]# service sshd restart

测试

[root@work63 ~]# netstat -anptu | grep ssh

修改完端口默认端口后,登录方法:

[root@work64 ~]# ssh -p 222 192.168.99.111
ListenAddress 0.0.0.0

设置sshd 服务器绑定的IP 地址,0.0.0.0 表示侦听所有地址
例:虚拟机,添加一块网卡。让sshd服务器只在192.168.99.111 网络接口上监听

关机Linux机器,添加一块网卡。
通过setup命令生成配置eth1配置文件。,

[root@work63 ~]# yum -y install system-config-network-tui # 安装网络设置选项
[root@work63 ~]# setup

手动命令配置ip地址

[root@work63 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:CF:BF:91
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.99.100
NETMASK=255.255.255.0
GATEWAY=192.168.99.1
DNS1=114.114.114.114
DNS2=8.8.8.8
ARPCHECK=no
IPV6INIT=no
USERCTL=no

重启网络

service network restart
ifup eth1
[root@work163 ~]# vim /etc/ssh/sshd_config

改:15行

#ListenAddress 0.0.0.0

为:15行

ListenAddress 192.168.2.63

[root@localhost network-scripts]# service sshd restart

测试:

[root@work163 ~]# netstat -anptu | grep 22
tcp 0 0 192.168.2.163:22 0.0.0.0:* LISTEN 3024/sshd
tcp 0 64 192.168.99.163:22 192.168.99.3:52978 ESTABLISHED 2459/sshd

[root@work64 ~]# ssh -p 222 192.168.99.111
ssh: connect to host 192.168.99.111 port 222: Connection refused

Protocol 2
# 选择的 SSH 协议版本,可以是 1 也可以是 2 ,CentOS 5.x 预设是仅支援 V2。
# 如果想要支持旧版 V1 ,
改:
Protocol 2
为:
Protocol 2,1

SyslogFacility AUTHPRIV
# 当有人使用 SSH 登入系统的时候,SSH 会记录信息,这个信息要记录的类型为AUTHPRIV。

默认日志存放在位置
sshd服务日志存放在: /var/log/secure 。

例: 为什么sshd配置文件中没有指定日志,但日志却存放在了: /var/log/secure ?
[root@work ssh]# vim /etc/rsyslog.conf 查看:

#LogLevel INFO
# 登录记录的等级!INFO级别以上。

#ServerKeyBits 1024
定义服务器密匙长度

安全设定项
# PermitRootLogin yes
#是否允许 root 登入!预设是允许的,但是建议设定成 no !
#PermitEmptyPasswords no
# 若上面那一项如果设定为 yes 的话,这一项就最好设定为 no ,
# 这个项目在是否允许以空的密码登入!当然不许!
#PasswordAuthentication yes
#是否允许使用密码验证,默认为允许

#LoginGraceTime 2m #grace优雅
# 当使用者连上 SSH server 之后,会出现输入密码的画面,在该画面中,
# 在多久时间内没有成功连上 SSH server 就强迫断线!若无单位则默认时间为秒!

LoginGraceTime 5
改:LoginGraceTime 2 为:LoginGraceTime 5 ,重启后
测试:

[root@work64 ~]# ssh 192.168.99.111

停留5秒后,再次输入,结果断开

root@192.168.99.111's password:
Connection closed by 192.168.99.111

# PrintMotd yes
# 打印出 /etc/motd 这个文档的内容。

[root@work ~]# cat /etc/motd

[root@work ~]# echo "警告!从现在开始,你所有的操作已经被记录!" > /etc/motd
测试:
ssh 192.168.99.111
Last login: Tue Nov 4 19:57:31 2014 from 192.168.99.107
警告!从现在开始,你所有的操作已经被记录!

# PrintLastLog yes
# 显示上次登入的信息!预设也是 yes !
Last login: Wed Mar 23 22:12:58 2016 from 192.168.99.100
改:
PrintLastLog yes
为:
PrintLastLog no
就不显示这个信息

UsePrivilegeSeparation yes
# 是否权限较低的程序来提供用户操作。我们知道 sshd 启动在 port 22 ,
# 因此启动的程序是属于 root 的身份。那么当 student 登入后,这个设定值
# 会让 sshd 产生一个属于 sutdent 的 sshd 程序来使用,对系统较安全

[root@work64 ~]# ssh rm@192.168.99.111

这样,当这个进程sshd被缓存区溢出等手段,得到登录的权限后,还是rm普通用户。不会得到root身份。

# UseDNS yes
#一般来说,为了要判断客户端来源是正常合法的,因此会使用 DNS 去反查客户端的主机名 # 不过如果是在内网互连,这项目设定为 no 会让联机速度比较快。
改:UseDNS yes
为:UseDNS no
改:GSSAPIAuthentication yes
为:GSSAPIAuthentication no

# PidFile /var/run/sshd.pid
# 可以放置 SSHD 这个 PID 的文档!上述为默认值

[root@work63 ~]# cat /var/run/sshd.pid
3874
[root@work63 ~]# ps -aux | grep 3874
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 3874 0.0 0.0 66604 1232 ? Ss 22:28 0:00 /usr/sbin/sshd
root 3926 0.0 0.0 103256 852 pts/2 S+ 22:30 0:00 grep 3874

评论已关闭