Linux九阴真经之九阴白骨爪残卷2(SSH)

SSH

ssh:安全的远程登录

两种方式的用户登录认证

基于passwork

基于key

客户端

常见的客户端工具有:Windows版的putty、securecrt、xshell;linux中有ssh、sftp、scp、slogin等

配置文件: /etc/ssh/ssh_config

ssh命令

用法:ssh  username@host   CMD

选项:

      -p   port :  远程服务器监听端口

      -b          :  指定连接的源IP

      -v          :  调试模式

      -C         :  压缩方式

      -X         : 支持x11转发

      -Y         :支持信任x11转发

      -t          :强制伪tty分配    例:  ssh  -t  remoteserver1  ssh  remoteserver2

ssh 客户端

当客户端第一次连接服务器时,服务器会发送自己的公钥给客户端,并保存在客户端的~./ssh/know_hosts中。下次连接时不会再询问。

SSH服务登录验证

基于密码登录验证

由上图我们总结出如下步骤

(1)客户单向服务器发起SSH请求,服务器会把自己的公钥发送给客户端

(2)用户根据服务器发送的公钥,对密码进行加密

(3)加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功

基于秘钥的登录方式验证

(1)首先在客户端生成一对密钥(ssh-keygen)

(2)并将客户端的公钥拷贝(ssh-copy-id) 到服务器

(3)当客户端再一次发送连接请求,包括IP,用户名

(4)服务器得到客户端的请求后,会到authorized——keys中查找,如果有响应的IP和用户,   就会随机生成一个字符串,利如:acdf

(5)服务器将使用客户端拷贝过来的公钥对字符串进行加密,然后发送给客户端

(6)得到服务器发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端

(7)服务器接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致就允许免密码登录

基于key认证

基于密钥的认证:

(1)在客户端生成密钥对

ssh-keygen  -t  rsa(指定加密方式)  -p''(指定空密码)  -f  "~/.ssh/id_rsa"

(2)把公钥文件传输至远程服务器对应用户的家目录

ssh-copy-id  -i  ~/.ssh/id_rsa.pub  root@IPADDR

(3)测试

(4)在SecureCRT或Xshell实现基于key验证
在SecureCRT工具—>创建公钥—>生成Identity.pub文件
转化为openssh兼容格式(适合SecureCRT,Xshell不需要转化格式),并复制到需登录主机上相应文件authorized_keys中,注意权限必须为600,在需登录的ssh主机上执行:
ssh-keygen -i -f Identity.pub >> .ssh/authorized_keys

(5)重设私钥口令:
ssh-keygen –p     (为私钥加密)

(6)验证代理(authentication agent)保密解密后的密钥
这样口令就只需要输入一次
在GNOME中,代理被自动提供给root用户
否则运行ssh-agent bash

(7)钥匙通过命令添加给代理
ssh-add

例:配置基于密钥的免密登录

1、在客户端A生成密钥对,按3次回车键

[root@laobai ~/.ssh]#ssh-keygen

2、把公钥传给客户端B对应的家目录,并重命名为 authorized_keys

3、在客户端Bde ~/.ssh 的目录下检查是否有authorized_keys 文件

4、在客户端A测试连接客户端B,发现无需输入密码,直接登录

猜你喜欢

转载自www.cnblogs.com/huxiaojun/p/9064122.html