因项目需要将本机文件拷贝至远程机器,首先想到的是使用ganymed-ssh2依赖包模拟scp将文件进行远程拷贝(关于ganymed-ssh2依赖包的使用,本博文不做详细描述)。为了实现免密远程拷贝,根据接口文档描述需要pem文件,由此学习.pem的配置使用。
生成密钥对:
$ ssh-keygen -t rsa -b 2048 -v
查看生成的密钥对:
$ ls ~/.ssh/
将私钥重命名至id_rsa.pem:
$ mv ~/.ssh/id_rsa ~/.ssh/id_rsa.pem
修改~/.ssh/目录权限:
$ chmod 700 ~/.ssh/
将id_rsa.pub文件内容重定向至authorized_keys文件:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
修改authorized_keys文件权限:
$ chmod 600 ~/.ssh/authorized_keys
使用编辑器(vim)打开配置文件
$ sudo vim /etc/ssh/sshd_config
修改完成后如下:
重启ssh服务:
$ sudo service sshd restart
将id_rsa.pem文件拷贝至本机,免密登录:
$ ssh -i id_rsa.pem remote-username@remote-ip
例如:
$ ssh -i id_rsa.pem ubuntu@192.168.0.11
同时,可以在使用ganymed-ssh2依赖包模拟scp远程拷贝时使用id_rsa.pem文件进行鉴权。
HOW TO GENERATE PEM FILE TO SSH THE SERVER WITHOUT PASSWORD IN LINUX