SSH-keygen linux教程

简介: 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 -b1024-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或更小,否则会连接失败。

保险起见,执行下面命令


chmod600 ~/.ssh/authorized_keys
chmod700 ~/.ssh


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


服务器ssh配置


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


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


然后重启ssh服务


service sshd restart


三、连接服务器


方法1: 直接ssh


ssh-i ~/.ssh/id_rsa -p22 user@yourservername


方法2(推荐):修改~/.ssh/config


Host server_alias(你的服务器别名)
HostName test.com/192.168.1.1(域名或IP)
Port 22User user
IdentityFile id_rsa


保存后,登录时只需执行


ssh server_alias


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

相关文章
|
2月前
|
Linux 网络安全 Python
linux centos上安装python3.11.x详细完整教程
这篇文章提供了在CentOS系统上安装Python 3.11.x版本的详细步骤,包括下载、解压、安装依赖、编译配置、解决常见错误以及版本验证。
798 1
linux centos上安装python3.11.x详细完整教程
|
6天前
|
Linux Python
Linux 中某个目录中的文件数如何查看?这篇教程分分钟教会你!
在 Linux 系统中,了解目录下的文件数量是常见的需求。本文介绍了多种方法,包括使用 `ls` 和 `wc` 命令组合、`find` 命令、`tree` 命令以及编程方式(如 Python)。无论你是新手还是有经验的用户,都能找到适合自己的方法。掌握这些技巧将提高你在 Linux 系统中的操作效率。
14 4
|
8天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
2月前
|
安全 Linux 网络安全
Linux端的ssh如何升级?
Linux端的ssh如何升级?
268 59
|
1月前
|
Linux Docker 容器
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
本篇博客重在讲解Centos安装docker,经博主多次在不同服务器上测试,极其的稳定,尤其是阿里的服务器,一路复制命令畅通无阻。
422 4
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
|
1月前
|
存储 数据可视化 Java
震惊!如何在linux下部署项目,部署/运行jar包 超详细保姆级教程!
如何在Linux系统下部署和运行Java项目jar包,包括传输文件到Linux、使用nohup命令运行jar包、查看端口状态、杀死进程和查看项目运行状态,以及如何解决“没有主清单属性”的错误。
389 1
震惊!如何在linux下部署项目,部署/运行jar包 超详细保姆级教程!
|
21天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
174 2
|
1月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
186 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
2月前
|
存储 Linux 5G
Linux 基于 LVM 逻辑卷的磁盘管理【简明教程】
这篇文章介绍了LVM(逻辑卷管理)如何提供灵活的磁盘管理方式,允许动态调整逻辑卷的大小而不会丢失数据。
Linux 基于 LVM 逻辑卷的磁盘管理【简明教程】
|
1月前
|
Linux 开发工具 Docker
各个类linux服务器安装docker教程
各个类linux服务器安装docker教程
55 0