1、说明:
1、ssh:Secure Shell (SSH) 是一个允许两台电脑之间通过安全的连接进行数据交换的网络协议。SSH采用公钥加密技术来验证远程主机,以及(必要时)允许远程主机验证用户。
2、与telnet和sftp的区别:FTP、Telnet是再网络中明文传送数据、用户帐号和密码。使用SSH, 你可以把所有传输的数据进行加密, 而且也能够防止DNS和IP欺骗。 2》第二个好处是:传输的数据是经过压缩的,所以可以加快传输的速度。
3、解密方式: SSH利用SSH Key来进行前面提到的基于密钥的安全验证。
4、生成的公钥应该放置在当前用户目录中,否则不生效。 不同用户可以拥有不同的公钥文件
2、实现方式:在linux环境下实现公钥、私钥的生成
1、认证方式: rsa、dsa
2、在指定用户的根目录下,及用户家目录: ~/
3、查看是否有ssh-key: ls -al ~/.ssh
4、如果有,可以删除目录 rm -rf ~/.ssh,建议删除之前备份该目录
5、生成新的ssh-key
6、执行: ssh-keygen -t rsa -C "邮箱地址用于公钥备注"
第一次提示输入文件名称: 可以忽略
第二次提示输入密钥:
第三次确认密钥
密钥在登录的时候会用到
7、在~/.ssh/目录下生成: id_rsa 私钥文件 和is_ras.pub 公钥文件
8、常用命令:
- -b:指定密钥长度;
- -e:读取openssh的私钥或者公钥文件;
- -C:添加注释;
- -f:指定用来保存密钥的文件名;
- -i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;
- -l:显示公钥文件的指纹数据;
- -N:提供一个新密语;
- -P:提供(旧)密语;
- -q:静默模式;
- -t:指定要创建的密钥类型。
3、配置使用:
1、修改sshd配置文件(/etc/ssh/sshd_config): 可以使用密钥免密登录配置
- 并去掉注释符”#“
- =========================
- RSAAuthentication yes
- PubkeyAuthentication yes
- AuthorizedKeysFile .ssh/authorized_keys
- =========================
2、配置authorized_keys文件. 将公钥内容进行拷贝进去
若’~/.ssh/authorized_keys’不存在,则建立.ssh文件夹和authorized_keys文件. 将上文中客户机id_rsa.pub的内容拷贝到authorized_keys中. 注意: 1) .ssh目录的权限必须是700 2) .ssh/authorized_keys文件权限必须是600。
- chmod 700 ~/.ssh
- chmod 600 ~/.ssh/authorized_keys
3、重启sshd 服务: 不同linux系统命令不同
/etc/init.d/sshd restart
或者
service sshd restart
systemctl restart sshd.service
4、只允许密钥登录:为了服务器主机安全,需要设定密钥登录,并且指定 root 不可远程登录。
/etc/ssh/ssh_config 配置文件中修改
禁止 root 远程登录: PermitRootLogin yes # 禁止 root 远程登录
关闭密码登陆方式:
PasswordAuthentication no
ChallengeResponseAuthentication no