一、初始SSH
SSH是标准的网络协议,可用于大多数UNIX操作系统,能够实现字符界面的远程登录管理,它默认使用22号端口,采用密文的形式在网络中传输数据,相对于通过明文传输的Telnet,具有更高的安全性。
SSH提供了口令和秘钥两种用户验证方式,这两者都是通过密文传输数据的。
不同的是,口令用户验证方式传输的是用户和密码,这要求输入的密码具有足够的复杂度才能具有更高的安全性。
而基于密钥的安全验证必须为用户自己创建一对密钥,并把共有的密钥放在需要访问的服务器上,当需要连接SSH服务器上时,客户端软件会向服务器发出请求,请求使用客户端的密钥进行安全验证。服务器收到请求之后,先在该用户的根目录下寻找共有密钥,然后把它和发送过来的公有密钥进行比较。如果两个密钥一致,服务器就用公有的密钥加密“质询”,并把它发送给客户端软件。客户端收到质询之后,就可以用本地的私人密钥再把它发送给服务器。这种方式是相当安全的。
二、检测与安装SSH
2.1、查看是否已安装SSH服务
#rpm -qa|grep -E openssh
2.2、安装SSH(如果未安装可执行此步骤)
#yum -y install openssh-server
2.3、SSH服务状态
启动:# systemctl start sshd.service
停止:# systemctl stop sshd.service
重启:# systemctl restart sshd.service
开机启动:# systemctl enable sshd.service
说明:在云服务器 ECS Linux CentOS 7 下重启服务不再通过 service 操作,而是通过 systemctl 操作。
三、启动SSH服务
3.1、注意:
CentOS 7.1安装完后默认已经启动了ssh服务我们可以通过以下命令来查看ssh服务是否启动。
3.2、查看22端口是否开放
#netstat -tnl
3.3、查看ssh服务是否启动
#systemctl status sshd.service
四、SSH客户端连接服务器(口令认证)
4.1、直接连接对方的主机,这样登录服务器的默认用户
# ssh 192.168.207.128
4.2、使用账号登录对方主机ly用户
# ssh ly@192.168.207.128
五、SSH客户端连接服务器(密钥认证)
这种认证方式是比较安全的。
密钥认证步骤:
1、生成公钥和私钥,生成的密钥默认在/root/.ssh/文件夹里面
# ssh-keygen(直接全部回车)
或
# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa(非交互式生产密钥)
Enter file in which to save the key (/root/.ssh/id_rsa): //设置钥匙的名称,默认为id_rsa
Enter passphrase (empty for no passphrase): //设置保护私钥文件的密码,即密钥登录时的密码(如果设置了密码,去除办法:ssh-keygen -p命令把密码改为空即可)
Enter same passphrase again: //再次输入保护私钥文件的密码
id_rsa //创建的私钥
id_rsa.pub //创建的公钥
2、把生成的公钥发送到对方的主机上去,用ssh-copy-id命令,自动保存在对方主机的~/.ssh/authorized_keys文件中去。
# ssh-copy-id -i /root/.ssh/id_dsa.pub ly@192.168.207.143
3、免密码登入测试
# ssh ly@192.168.207.143
说明:ssh服务端.ssh目录权限为700,.ssh/authorized_keys的权限为600。