阮一峰ssh博客
ssh-keygen -t rsa //注意 ssh-keygen之间没有空格
首次回车是提示保存到什么地方,起什么名字。什么都不敲,默认保存到当前用户的家目录(root用户就是'/root')。
'/root'目录下面会创建一个`.ssh`的文件夹
再次回车之后是是否给秘钥加密码,不需要,直接回车两次
公钥私钥的位置在(加入用root用户创建的)`/root/.ssh`文件下
如果想锁住服务器 `cat id_rsa.pub`,这样可以把秘钥文件内容输出到标准输出流
也可以输出到其他文件 `cat id_rsa.pub >> authorized_keys`
一个服务器可以挂多把锁,任何一把锁都可以打开服务器,`authorized_keys`里面可以放多把公钥。但是每一把公钥都有唯一与他匹配的私钥才能打开它
然后把他传到客户端之后,就可以删除服务器上的公私钥 `rm -rf id_rsa*`
putty保存私钥,文件名用 `id_rsa.ppk`;
文件权限问题
$ cd /home/git/
$ mkdir .ssh
$ chmod 700 .ssh
$ touch .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
- cat id_rsa.pub >> authorized_keys --把id_rsa.pub里面的内容重定向到authorized_keys里面
authorized_keys文件
远程主机将用户的公钥,保存在登录后的用户主目录的$HOME/.ssh/authorized_keys文件中。
公钥就是一段字符串,只要把它追加在authorized_keys文件的末尾就行了。
$ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys'
< ~/.ssh/id_rsa.pub
这条命令由多个语句组成,依次分解开来看:(1)"$ ssh user@host",表示登录远程主机;
(2)单引号中的mkdir .ssh && cat >> .ssh/authorized_keys,表示登录后在远程shell上执行的命令:
(3)"$ mkdir -p .ssh"的作用是,如果用户主目录中的.ssh目录不存在,就创建一个;
(4)'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub的作用是,将本地的公钥文件~/.ssh/id_rsa.pub,重定向追加到远程文件authorized_keys的末尾。
写入authorized_keys文件后,公钥登录的设置就完成了。
- 如果使用主机名登录,直接写主机名即可
ssh root@long
- ssh公钥登录是把本机的公钥传给服务器
- Mac的公钥地址是在
/Users/luajinlong/.ssh
下面,linux
是在/root/.ssh
下面
以下生成公钥私钥的方式在win
和mac
上都可以使用
cd /d D:\openssl\bin
openssl genrsa -out key.pem 1024
openssl rsa -in key.pem -pubout -out merchant_public_key.txt
openssl pkcs8 -topk8 -inform PEM -in key.pem -out merchant_private_key.txt -nocrypt