SSH免密登陆

一、SSH简介

SSH(Secure Shell)是一种通信加密协议,加密算法包括:RSA、DSA等。

1、RSA:一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。RSA的安全性基于大数分解极其困难(将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥);

2、DSA:也是非对称加密算法,其安全性与RSA相比差不多,是基于整数有限域离散对数难题的;

二、SSH免密登陆原理

SSH免密登陆_第1张图片
SSH免密登陆原理

三、SSH免密登陆

1、生成秘钥

在mac根目录(/Users/qianxuemin)下执行命令,提示输入的话直接回车,不输入任何内容

ssh-keygen -t rsa -C "test_user" -f "test_key"
//生成密钥 使用rsa加密算法 用户名字  密钥对文件名

回车后会生成两个文件

test_key     //私钥 
test_key.pub //公钥 

把生成的两个文件放到隐藏目录(/Users/qianxuemin/.ssh)下

ll -a   // 以长文件名显示文件列表
cd .ssh/
ll
mv test_key* .ssh/    //把生成的两个文件放到 .ssh文件夹
// 若无权限,修改.ssh权限 chmod -R 700 .ssh 私钥权限为当前用户可读可写,不给其他权限

2、传输公钥

把公钥复制到需要远程登录的一台服务器

scp ./test_key.pub [email protected]:/root/.ssh

3、追加公钥

登录远程服务器,在远程服务器的.ssh目录下执行追加公钥

ssh [email protected] //远程登录 输密码
cat test_key.pub >> authorized_keys  // 在.ssh目录下执行
exit  //退出远程

4、开始免密登录

ssh -i ~/.ssh/test_key [email protected]

5、修改config

如果不想用文件路径登陆
在本机的.ssh目录下新建config文件 并修改配置文件config

  User root //以什么用户登录
  Host qxmcentos //要登录的服务器别名
  HostName 192.168.0.2 //要登录的服务器ip或域名
  Port 22        //要登录的服务器的端口 默认22
  StrictHostKeyChecking no //热键检查
  IdentityFile ~/.ssh/test_key //私钥完整路径
  IdentitiesOnly yes    //只允许秘钥登录
  Protocol 2   //SSH版本
  Compression yes
  ServerAliveInterval 60
  ServerAliveCountMax 20
  LogLevel INFO

6、免密登陆

用远程服务器别名免密登陆

ssh qxmcentos // qxmcentos为远程服务器别名 

7、注意事项

.ssh目录的权限必须是700
.ssh/authorized_keys文件权限必须是600
权限列表

-rw-------   (600) 只有所有者才有读和写的权限 
-rw-r--r--   (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限 
-rwx------   (700) 只有所有者才有读,写,执行的权限 
-rwxr-xr-x   (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限 
-rwx--x--x   (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限 
-rw-rw-rw-   (666) 每个人都有读写的权限 
-rwxrwxrwx   (777) 每个人都有读写和执行的权限

普通文件的文件权限第一个字符为“-”
目录文件的文件权限第一个字符为“d”
字符设备文件的文件权限第一个字符为“c”;
块设备文件的文件权限第一个字符为“b”
符号链接文件的文件权限第一个字符为“s”

你可能感兴趣的:(SSH免密登陆)