SSH为Secure Shell的缩写,SSH为建立在应用层和传输层基础上的安全协议,其默认服务端口是22。Telnet服务与ssh服务相似,但Telnet服务在网络上是用明文传送口令和数据,不安全,Telnet的默认服务端口是23。而ssh服务是基于成熟的公钥加密体系,把所有传输的数据进行加密,从而保证数据在传输时不被恶意破坏、泄漏和篡改,具有很高的安全性。

1.安装软件

SSH默认情况下已经安装,如果没有安装,可用yum源安装方法

[root@LJJ-station /]# yum install openssh

2.相关文件

服务名:sshd

服务端主程序:/etc/sbin/sshd

客服端主程序:/etc/bin/ssh

服务端配置文件:/etc/ssh/sshd_config

客服端配置文件:/etc/ssh/ssh_config

存放访问过的计算机的公钥文件:/root/.ssh/known_hosts

注:基本上所有的ssh相关设定都放在/etc/ssh/sshd_config下

3.服务控制命令

基本格式:ssh username@10.0.0.1

启动ssh服务:service sshd start

停止ssh服务:service sshd stop

重启ssh服务:service sshd restart

查看22号端口是否打开:netstat -anpt |grep sshd

4.配置方案

(1)密码方式

[root@LJJ-station /]# ssh root@10.0.0.222
root@10.0.0.222's password:
Last login: Tue Jul 30 12:35:26 2013 from 10.0.0.121
[root@station2-7 ~]#

(2)密钥方式

先生成密钥文件

[root@station2-7 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
06:6f:81:6f:e3:2d:e5:83:58:10:d7:01:05:44:10:e2 root@station2-7.sxkeji.com
The key's randomart p_w_picpath is:
+--[ RSA 2048]----+
|    . +=*=o.     |
|   . . +  .      |
|    E + .        |
|       = .       |
|        S .      |
|       B *       |
|      . + +      |
|         . .     |
|                 |
+-----------------+
[root@station2-7 ~]#


查看密钥

[root@station2-7 ~]# ll /root/.ssh/
总用量 12
-rw------- 1 root root 1675 7月  30 13:55 id_rsa
-rw-r--r-- 1 root root  408 7月  30 13:55 id_rsa.pub
-rw-r--r-- 1 root root  391 7月  29 18:01 known_hosts
[root@station2-7 ~]#

将公钥复制到远程主机

方法1:scp /root/.ssh/id_rsa.pub 10.0.0.222 /root/.ssh/authorized_keys 不建议使用
方法2:ssh-copy-id (-i /root/.ssh/id_rsa.pub) 10.0.0.222括号里的是R5版本用的,R6中不用加括号内的选项


当再次连接到服务器的时候就不用输入密码了。

5.访问控制(TCPWrappers)

主要文件/etc/hosts.allow这个文件是允许服务列表,这个文件的优先级要高于/etc/hosts.deny

           sshd:10.0.0.222  (允许10.0.0.222访问)

           sshd:10.1.1.*   (*代表10.1.1.0这个网段)

           sshd:10.0.1.*  EXCEPT 10.0.1.5   (代表允许10.0.1.0这个网段除了10.0.1.5这个IP)

           /etc/hosts.deny这个文件是拒绝服务列表

           sshd:all  (拒绝所有)

6.当ssh访问很慢的原因和解决方法

140723558.png

7.ssh连接不上的排错方法

使用ping命令看能否连通

(1)如果不能ping通,则说明是物理层或者数据链路层或者网络层有问题

再查看MAC地址看是否有改动,可查看/etc/sysconfig/network-scripts/ifcth0.如果有问题将mac地址改好,注意mac地址第二位不能为奇数。改好后需要刷新

如果MAC地址没问题,在查看/etc/sysconfig/network查看IP地址及子网掩码有没有问题,如果有改正并刷新服务。

(2)ping通后就可以判断问题出在传输层及以上层。

检查端口是否打开,刷新服务

使用telnet 进行端口测试,如果没反应查看防火墙,使用iptable -F清空防火墙设置

如果还是没解决,检查ssh的配置文件/etc/hosts.allow等文件,最后查看/etc/ssh/ssh_config的设置