Linux的远程连接使用ssh协议:安装openssh软件包,监听22端口;默认安装并启动sshd服务
SSH认证方式
(1)密码认证:用户名、密码登陆
(2)密钥对登陆:客户端生成密钥对,将公钥上传至服务器,实现免密登录至服务器
配置SSH免密登录
全局配置文件
vim /etc/ssh/sshd_config
48 PubkeyAuthentication yes //启用公钥认证
49 AuthorizedKeysFile .ssh/authorized_keys //指定公钥文件路径
两种方式实现(效果相同)
1.使用ssh-copy-id(ssh-copy-id只能通过22端口拷贝到目标主机)
ssh-keygen -t rsa -b 1024 //生成rsa 1024位算法的密钥对
ssh-copy-id -i ~/.ssh/id_rsa.pub <user>@<IP> //将本地公钥文件上传到指定服务器的指定用户下
2.使用scp(可以使用自定义的端口)
Client端
scp -P 20333 ~/.ssh/id_rsa.pub <user>@<IP>:~/.ssh/ //将本地的公钥文件远程拷贝到指定的服务器目录下
Server端
chown -R <user>:<group> ~/.ssh //设置目录的所属者、组,如果没有该目录,需提前新建:mkdir ~/.ssh
chmod 700 ~/.ssh //设置目录权限
touch ~/.ssh/authorized_keys //新建认证密钥文件
chmod 600 ~/.ssh/authorized_keys //设置文件权限
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys //导入公钥文件,等待客户端登录,多个客户端连接,可以多次追加导入
登录测试
Client端
ssh <user>@<Server IP>
Ps:
1、客户端如需多个用户连接服务器,在每个用户下新建.ssh目录,并将authorized_keys拷贝到.ssh目录,设置所有者、组
2、如需多个客户端连接服务器,使用:~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys,这样实现客户端公钥文件追加