linux系统(centos)配置ssh免密登录
linux系统(centos)配置ssh免密登录
背景
在日常使用时候,远程执行一些命令或脚本,交互式的输入密码有些不方便。故需配置免密登录。
用SSH命令行在A服务器上远程登录B服务器不需要密码。
原理
基于SSH协议,普遍默认是通过用户名和密码认证登录服务器,通过公钥和私钥的方式验证登录。达到面密的效果。
我们要远程登录某台服务器,就需要将我们自己公钥拷贝到远处服务器上。
操作步骤
-
在我的服务器上生产一对公钥和私钥
备注:当前是啥用户就会在用户的当前家目录的/home/xxx/.ssh/生产公钥和私钥
#1. 生成密钥对 ssh-keygen -b 1024 -t dsa #一路回车即可,默认在~/.ssh/目录下 ssh-keygen #也可以不带参数直接生产一对公钥,私钥,会在~/.ssh/ 目录下,会新生成两个文件:id_rsa.pub 和 id_rsa。
-
将公钥拷贝远程服务器上
#2. 把生成的密钥文件上传到远程主机 ssh-copy-id user@host #第一次拷贝需要输入yes和密码 #3. 确保远程ssh-server端的/etc/sshd_config #以下三行没什么要改的,把默认的#注释去掉就行了 RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys #4. 另外,限制登录设置主要是对hosts.allow与hosts.deny就行改动
-
在我的服务器上远程登录,已经免密
ssh 192.168.0.2