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


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

相关文章
|
29天前
|
Ubuntu 网络协议 Linux
【附安装包】CentOS7(Linux)详细安装教程(手把手图文详解版)
【附安装包】CentOS7(Linux)详细安装教程(手把手图文详解版)
104 2
|
13天前
|
安全 Linux
Linux查看和剔除当前登录用户详细教程
Linux查看和剔除当前登录用户详细教程
12 0
Linux查看和剔除当前登录用户详细教程
|
14天前
|
Linux 网络安全 数据安全/隐私保护
使用宝塔Linux搭建DVWA靶场保姆级教程
这是一篇详细的教程,作者基于其在Web渗透测试领域的学习经验,利用宝塔Linux面板搭建了DVWA靶场。从安装Linux宝塔面板到通过Docker运行DVWA容器,每一步都有详尽的文字描述和配图指导,确保读者能够顺利地进行实践操作,非常适合初学者快速上手并掌握相关技能。
|
16天前
|
Linux PHP
Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程
【8月更文挑战第27天】本文介绍两种禁用PHP执行的方法:使用`PHP_diseval_extension`禁用和通过`suhosin`禁用。由于`suhosin`不支持PHP8,仅适用于PHP7及以下版本,若服务器安装了PHP5.6,则需对应安装`suhosin-0.9.38`版本。文章提供了详细的安装步骤,并强调了宝塔环境下与普通环境下的PHP路径差异。安装完成后,在`php.ini`中添加`suhosin.so`扩展并设置`executor.disable_eval = on`以禁用执行功能。最后通过测试代码验证是否成功禁用,并重启`php-fpm`服务生效。
15 2
|
20天前
|
机器学习/深度学习 存储 Linux
【机器学习 Azure Machine Learning】使用VS Code登录到Linux VM上 (Remote-SSH), 及可直接通过VS Code编辑VM中的文件
【机器学习 Azure Machine Learning】使用VS Code登录到Linux VM上 (Remote-SSH), 及可直接通过VS Code编辑VM中的文件
|
21天前
|
安全 网络协议 Linux
在Linux中,什么是SSH,并且如何使用它?
在Linux中,什么是SSH,并且如何使用它?
|
20天前
|
监控 安全 Ubuntu
在Linux中,如何进行SSH服务配置?
在Linux中,如何进行SSH服务配置?
|
19天前
|
Ubuntu 网络协议 Linux
Linux下快速搭建七日杀官方私人服务器教程
本文提供了一份详尽的《七日杀》服务器搭建指南,专为Linux系统设计。教程分为九大部分,涵盖从前期准备到服务器维护的全过程。主要内容包括:选择具备公网IP的云服务器、安装Ubuntu 20 X64系统、下载SteamCMD等必备软件;详细指导如何配置服务器、设置防火墙及端口规则、启动与关闭服务器;此外还提供了服务器管理、环境配置(如设置swap分区)等实用技巧。适合有一定Linux基础的玩家参考实践。
|
22天前
|
安全 算法 Linux
在Linux中,什么是SSH?它是如何工作的?
在Linux中,什么是SSH?它是如何工作的?
|
27天前
|
Linux 网络安全 Python
Linux离线安装Python时ssh和hashlib死活安装不上的解决方案
本文提供了Linux环境下离线安装Python时遇到的"ImportError: No module named _ssl"和"ERROR:root:code for hash md5|sha1|sha224|sha256|sha384|sha512 was not found"两个问题的解决方案,通过设置OpenSSL环境变量和编辑Python源码配置文件来解决。
17 1