Linux有多种登录方式,比如telnet、ssh。支持ssh登录方式:口令登录和公钥登录
ssh登录方式:ssh [-l login_name] [-p port] [user@]hostname
口令登录:输入密码登录。
公钥登录:将本端设备的公钥加入到对端的公钥文件authorized_keys,可以免密码登录。
本文只阐述如何使用公钥免密码登录。
公钥登录原理:
所谓"公钥登录",原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。
操作步骤:
1、登录远端设备,修改ssh配置,对应文件路径/etc/ssh/sshd_config或者/etc/sshd/sshd_config,放开如下配置项:
1 RSAAuthentication yes #启用rsa认证 2 PubkeyAuthentication yes #启用公钥私钥配对认证方式 3 AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径
确保权限,.ssh目录为700,authorized_keys权限为600,重启sshd服务:
service sshd restart
或者
systemctl restart sshd
2、本端生成公钥,运行如下命令:
ssh-keygen -t rsa
生成公钥文件id_rsa.pub和私钥文件id_rsa。
3、将公钥添加到远端.ssh/authorized_keys中,那么本端就可以免密码登录远端设备。
添加方法,诚所谓八仙过海,各显神通。
常用方法,通过scp命令拷贝。
scp local_file remote_file
比如本端设备192.168.24.16,远端设备192.168.24.17,用文件替换方式:
本端设备执行: scp /root/.ssh/id_rsa root@192.168.24.17:/root/.ssh/authorized_keys 远端设备执行: scp root@192.168.24.16:/root/.ssh/authorized_keys /root/.ssh/id_rsa
或者使用ssh-copy-id命令
ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.24.17
关于ssh/sftp/ftp/ftps协议,后续记录。