ssh介绍
使用ssh登录服务器的时候,需要输入ip地址、端口、用户名、密码等信息,比较麻烦,容易输错。还好,通过客户端和服务器的配置参数,可实现免密码快速登录。服务器可通过保存客户端的公钥,用于验证客户端的身份,从而省去输入密码的步骤。客户端也可通过配置服务器参数来简化登录命令。
配置方法
1.客户端生成密钥
客户端生成密钥的方法很简单,只需要使用ssh-keygen命令。
ssh-keygen -t rsa
生成密钥过程中,建议采用默认值,只需要按三次回车之后,就会再~/.ssh目录下生成密钥文件,其中,id_rsa为私钥,id_rsa.pub为公钥。
2.服务器配置
将客户端生成的公钥内容复制到服务器端authorized_keys文件中
客户端公钥位置可以通过bash查找
cd ~/.ssh
进入ssh目录,可通过ls产看当前目录文件包括id_rsa ,id_rsa.pub。打开id_rsa.pub,可以通过catch
catch id_rsa.pub
复制公钥内容 追加到服务端authorized_keys文件。authorized_keys文件位置 ~/.ssh/authorized_keys。
如果没有这个文件可以手动创建
touch authorized_keys
通过vim 打开并编辑
vi authorized_keys
把刚才复制的公钥拷贝进来,esc : wq!保存退出。
重启ssh
查看状态:
systemctl status sshd.service
启动服务:
systemctl start sshd.service
重启服务:
systemctl restart sshd.service
开机自启:
systemctl enable sshd.service
退出服务器后重新登录试下
exit #退出服务器
ssh -p 端口号 username@ipAdress
是不是已经不需要密码了?
可能遇到的问题
1.重启服务没有权限 permission dinied
可以通过 sudu su 获取root权限
**2.重启服务重定向问题Redirecting **
查看ssh状态 systemctl start sshd.service
active(running)即为正常运行状态
重启ssh systemctl restart sshd.service
开启ssh systemctl enable sshd.service
3.重新登录后依然需要输入密码
切记设置.ssh权限
chmod 700 .ssh
chmod 644 .ssh/authorized_keys