ssh-keygen

简介: ssh-keygen用来生成ssh公钥认证所需的公钥和私钥文件。ssh秘钥登录特点:1.安全;2.免输密码。对于安全级别较高的服务器,建议配好ssh登录后禁掉密码登录。

ssh-keygen用来生成ssh公钥认证所需的公钥和私钥文件。

ssh秘钥登录特点:1.安全;2.免输密码。
对于安全级别较高的服务器,建议配好ssh登录后禁掉密码登录。
缺点:略繁琐。如果你的只是临时登录一次,那么还是密码吧。

一、生成秘钥

秘钥对需要在你自己的机器上生成,然后把公钥放到服务器相应用户的~/.ssh目录

执行下面命令,默认生成位置是~/.ssh

ssh-keygen

系统会询问你文件名和秘钥密码,可以一路回车过去,会生成两个文件:

  • id_rsa 私钥
  • id_rsa.pub 公钥

默认使用rsa算法,你也可以用比较详细的指令,如

ssh-keygen -t rsa -b 1024 -f yourkeyname -C "备注"
参数 解释
-b 采用长度1024bit的密钥对,b=bits,最长4096,不过没啥必要
-t rsa 采用rsa加密方式,t=type
-f 生成文件名,f=output_keyfiles
-C 备注,C=comment

更多参数可运行 man ssh-keygen

二、在服务器上安装秘钥

把上一步生成的公钥发送到服务器(scp,FillZilla等)上,然后在服务器上执行下面命令

cat id_rsa.pub >> ~/.ssh/authorized_keys

如此便完成了公钥安装,有个小坑值得一提:authenrized_keys的权限必须是600或更小,否则会连接失败。
保险起见,执行下面命令

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

另外,.ssh目录的owner必须是ssh登录用户,不能是root

服务器ssh配置

修改服务器上的ssh配置文件,位置:/etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes

PermitRootLogin no //禁止root登录
PasswordAuthentication yes //允许密码登录,根据你的情况设置

然后重启ssh服务

service sshd restart

三、连接服务器

方法1: 直接ssh
ssh -i ~/.ssh/id_rsa -p 22 user@yourservername
方法2(推荐):修改~/.ssh/config
Host server_alias(你的服务器别名)
HostName test.com/192.168.1.1(域名或IP)
Port 22
User user
Identifier id_rsa

保存后,登录时只需执行

ssh server_alias

多个服务器另起一行续写就行了,就是这么简单!

目录
相关文章
|
Oracle 关系型数据库 网络安全
|
算法 网络安全 数据安全/隐私保护
|
网络安全 数据安全/隐私保护 安全
|
安全 网络安全 数据安全/隐私保护
使用ssh-keygen生存密钥对
个人博客: alex-my.xyz      ssh-keygen具体更加详细的用法请参见“ssh-keygen中文手册”。 本处仅讲述生成过程,为了github.com服务添加安全保障。     1、在~下有一个隐藏文件夹.ssh,大家可以输入命令,cd~/.ssh,如果不存在,请建立。     2、一般我们会给生成的key添加一个注释,因此我们的命令一般是这样的:    
1266 0
|
网络安全 数据安全/隐私保护
ssh-keygen
ssh-keygen 产生公开钥 (pulib key) 和私人钥 (private key),以保障 ssh 联机的安全性, 当 ssh 连 shd 服务器,会交换公开钥,系统会检查 /etc/ssh_know_hosts 内储存的 key,如果找到客户端就用这个 key 产生一个随机产生的session key 传给服务器,两端都用这个 key 来继续完成 ssh 剩下来的阶段。
1123 0
|
3月前
|
Linux 网络安全
Linux命令(124)之ssh
Linux命令(124)之ssh
33 2
|
5月前
|
监控 数据可视化 安全
Linux——怎样使用SSH服务实现远程UI界面本地显示
需求场景 最近几天需要实现软件的远程监控,但是实际场景又不能使用向日葵、VNC、AnyDesk、以及其他的监视软件,并且软件的整体设计也没有这块的数据上行设计。
175 0
|
4月前
|
安全 网络协议 Linux
Linux ssh 命令详解
Linux ssh 命令详解
115 0
|
1月前
|
网络协议 Ubuntu Linux
「远程开发」VSCode使用SSH远程linux服务器 - 公网远程连接
「远程开发」VSCode使用SSH远程linux服务器 - 公网远程连接
110 0