0%

SSH免密登录

========================


SSH单密钥配置

  • 生成ssh密钥文件

ssh-keygen -t ecdsa -b 521

1
2
3
4
-t 为指定加密算法类型,支持rsa,dsa,ecdsa
-b 指定密钥大小,ecdsa算法默认大小为256位

ECDSA (椭圆曲线数字签名算法) 生成的密钥更小,安全性更高

如果不需要更改密钥存储位置并为私钥设置密码,可以一路回车
ssh-keygen默认会在 $HOME/.ssh/目录下生成2个文件:id_ecdsa.pub(公钥)和id_ecdsa(私钥)。

  • 将公钥上传到远程服务器

ssh-copy-id username@remote_ip

ssh-copy-id会将你刚刚生成的公钥(id_ecdsa.pub)自动写入到远程主机的$HOME/.ssh/authorized_keys文件中

  • 测试

ssh username@remote_ip

SSH多密钥配置

  • 生成密钥

ssh-keygen -t ecdsa -b 521 -f ~/.ssh/one -C “remote_ip”

1
2
-f 指定生成密钥保存位置与名称 建议放到 $HOME/.ssh/目录下
-C 添加注释,类如邮箱,远程主机IP,用户名之类,默认为本机主机名和用户
  • 将公钥上传到远程服务器

ssh-copy-id -i ~/.ssh/one.pub username@remote_ip

1
-i 指定上传公钥名称
  • 创建SSH配置文件来管理多组密钥

vim ~/.ssh/config

1
2
3
4
5
6
Host remote_ip1
IdentitiesOnly yes
IdentityFile ~/.ssh/one
Host remote_ip2
IdentitiesOnly yes
IdentityFile ~/.ssh/two

Host后面写: 远程主机ip地址
IdentityFile后面写 你创建的密钥位置与名称

  • 测试

ssh username@remote_ip

其他

  • 将本地文件上传到远程主机

scp local_file remote_username@remote_ip:remote_folder

  • 将远程主机中的文件下载到本地

scp remote_username@remote_ip:remote_file local_folder

参考

欢迎关注我的其它发布渠道