在linux系统中,SSH(Secure Shell)协议是一种常用的远程登录协议,用于在两个计算机之间建立安全的加密连接。SSH密钥是SSH协议的一部分,它可以用来进行身份验证,以确保只有授权用户才能访问远程系统。本文将介绍如何在Linux系统中生成SSH密钥,以及如何使用生成的密钥进行远程登录。
Step 1: 安装OpenSSH
在使用SSH协议之前,需要先安装OpenSSH,它是一个提供SSH服务的开源工具。通常情况下,Linux系统已经预装了OpenSSH。如果没有,请使用以下命令进行安装:
sudo apt-get install openssh-server
Step 2: 检查SSH服务是否启动
使用以下命令检查SSH服务是否已经启动:
systemctl status ssh
如果SSH服务已经启动,将看到如下信息:
● ssh.service – OpenSSH server daemon
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2023-10-15 15:32:18 UTC; 16s ago
Mn PID: 3137 (sshd)
Tasks: 1 (limit: 2319)
CGroup: /system.slice/ssh.service
└─3137 /usr/in/sshd -D
Step 3: 生成SSH密钥
使用以下命令在本地计算机上生成SSH密钥:
ssh-keygen -t ed25519 -C “eml@example.com”
这里使用的是Ed25519密钥,但也可以使用其他类型的密钥,如RSA或ECDSA。其中,-C参数指定一个注释,方便进行管理和识别。
运行上述命令后,会提示输入要将密钥存储在哪里,以及是否要设置一个密码。如果您不希望设置密码,则可以直接按Enter键跳过该步骤。生成的密钥对将存储在~/.ssh目录下,其中:
– id_ed25519为私有密钥
– id_ed25519.pub为公共密钥
Step 4: 复制公共密钥到远程服务器
将生成的公共密钥复制到需要访问的远程服务器上。可以使用以下命令将公共密钥复制到远程服务器中:
ssh-copy-id user@remote_host
其中,user为远程服务器上的用户名,remote_host为远程主机的IP地址或域名。运行上述命令后,会提示输入远程服务器的密码,以便将公共密钥复制到~/.ssh/authorized_keys文件中。
Step 5: 使用SSH密钥登录远程服务器
现在,您可以使用SSH密钥登录远程服务器了。使用以下命令进行登录:
ssh user@remote_host
该命令会自动使用生成的私钥进行身份验证,从而避免了每次都要输入密码的问题。
在Linux系统中生成SSH密钥非常简单,只需几个简单的步骤即可完成。SSH密钥是保护远程访问的一种非常安全的方式,它可以防止未经授权的用户访问系统。希望您能够通过这篇文章,成功学会如何生成SSH密钥,并在实际应用中加以运用。
相关问题拓展阅读:
- linux下安装ssh
- ssh登录Linux主机怎么默认下载密钥
- 如何通过winscp获得ssh服务端的hostkey
linux下安装ssh
(SSH是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。SSH有两个版本,我们现在介绍的是版本2。)
安装SSH
具体步骤如下:
获得SSH软件包。 (
成为超级用户(root).
# gzip –cd ssh-2.3.0.tar.gz |tar xvf –
# cd ssh-2.3.0
# ./configure
注意,如果你希望用tcp_wrappers来控制SSH,那么在configure时需要加上选项“–with-libwrap=/path/to/libwrap/”, 用来告诉SSH关于libwrap.a 和tcpd.h的位置。
# make
# make install
和SSH有关的程序都放置在/usr/local/bin下,包括ssh,sftp,sshd2, ssh-keygen等。
二、配置
SSH的配置文件在/etc/ssh2下,其中包括sshd2的主机公钥和私钥:hostkey和hostkey.pub。这两个文件通常是在安装SSH时自动生成的。你可以通过下面的命令重新来生成它们:
# rm /etc/ssh2/hostkey*
# ssh-keygen2 –P /etc/ssh2/hostkey
而ssh2_config 文件一般情形下无需修改。
三、启动sshd2
每个要使用SSH的系统都必须在后台运行sshd2。用手工启动:
# /usr/local/bin/sshd2&
可以在“/etc/rc2.d/S99local”中加入该命令,这样系统每次启动时会自动启动sshd2。
四、用tcp_wrappers控制SSH
安装SSH的站点可以用tcp_wrappers来限制哪些IP地址可以通过ssh来访问自己。比如,在/etc/hosts.allow中加入
sshd,sshd2: 10.0.0.1
那么只有10.0.0.1可以通过ssh来访问该主机。
以上都是系统管理员完成的工作。下面我们说说普通用户如何使用SSH。
五、基本应用
每个用户在使用SSH之前,都要完成以下步骤:
在本地主机(比如,local.pku.edu.cn)上生成自己的ssh公钥和私钥。大态命令如下:
local# ssh-keygen
Generating 1024-bit dsa key pair
1 oOo.oOo.o
Key generated.
1024-bit dsa, teng@ns, Fri Oct:27:05
Passphrase :************ /*在此输入你的口令,以后访问这台主机时要用。
Again :************ /*
Private key saved to /home1/teng/.ssh2/id_dsa_1024_a
Public key saved to /home1/teng/.ssh2/id_dsa_1024_a.pub
生成的私钥和公钥(id_dsa_1024_a和id_dsa_1024_a.pub)存放在你家目录的~/.ssh2目录下。和用户相关的SSH配置文件都在~/.ssh2下。私钥由用户保滚氏源存在本地主机上,而公钥需传送到远地主机的你自己的帐号的~/.ssh2下,如果你要用ssh2访问本地主机的话。
在~/.ssh2下创建“identification”文件用来说明进行身份认证的私钥。命令如下:
local:~/.ssh2# echo “IdKey id_dsa_1024_a” > identification
3.同样地,在远地主机(比如,remote.pku.edu.cn)上完成上面步骤。
4.将本地(local.pku.edu.cn)下你自己(这里是“teng”)的公钥(id_dsa_1024_a.pub)拷贝到远地主机(remote.pku.edu.cn)上你自己家目录下的.ssh2目录下,可命名为“local.pub”,一般用ftp上传即可。
在远地主机上,你自己家目录的.ssh2目录下,创建“authorization”文件,其中指定用来进行身份认证的公钥文件。命令如核毕下:
remote:~/.ssh2# echo “Key local.pub” > authorization
现在你可以从本地用ssh2登录到远地系统了。命令如下:
local# ssh remote.pku.edu.cn
Passphrase for key “/home1/teng/.ssh2/id_dsa_1024_a” with comment “1024-bit dsa,
teng@ns, Fri Oct:27:05″:***********
这时会要你输入你的ssh口令(Passphrase)。验证通过后,即登录到remote主机上。
3563
ssh登录Linux主机怎么默认下载密钥
想要默认下载秘钥,这样ssh登陆就不用再使用账号密码登陆了,这段游里可以使用基于主机的非对称密钥方式从丛兄主机B直接登录到主机A,具体操作步骤如下:
1,先要修改需要登陆的linux主机A:
vi /etc/ssh/sshd_config,将
RhostsRSAAuthentication
HostbasedAuthentication
PubkeyAuthentication
都设置为 yes
保存退出,重启ssh服务 /etc/init.d/sshd restart;
2,在另外一个做登陆操作的主机A上进行一下操作:
cd ~/.ssh/ (如果没有.ssh文件夹,可以自己mkdir .ssh)
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
93:08:88:88:dc:8f:46:d8:a3:09:fc:35:25:50:d0:fe
3,秘钥生成以后,将秘钥文件从A主机拷贝到B主机:
#scp -P~/.ssh/id_rsa.pub root@A主机IP:/root/.ssh/authorized_keys
root@B主机ip’s password:
输入正确密码,回车
id_rsa.pub00%.4KB/s 00:00
这样~/.ssh/id_rsa.pub 秘钥已经安全传输到B主机上的/root/.ssh/目录下并命名为authorized_keys(必须重命名为此文件名);
#ssh -proot@A主机IP
Enter passphrase for key ‘/root/.ssh/id_rsa’:
密语正确出现类似如下的登录信息:
Last login: Sat Jul 26 11:16:from B主机ip
#
登录A主机成握郑销功。
之一步:生成密匙对腔带,我用的是rsa的密钥。使用命令 “ssh-keygen -t rsa”
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user1/.ssh/id_rsa):
Created directory ‘/home/user1/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user1/.ssh/id_rsa.
Your public key has been saved in /home/user1/.ssh/id_rsa.pub.
The key fingerprint is:
e0:f0:3b:d3:0a:3d:da:42:01:6a:61:2f:6c:a0:c6:e7
$
生成的没圆喊过程中提示输入密钥对保存位置,直接回车,接受默认值就行了。接着会提示输入一个不同于你的password的密码枯野,直接回车,让它空着。当然,也可以输入一个。这样,密钥对就生成完了。
其中公共密钥保存在 ~/.ssh/id_rsa.pub
私有密钥保存在 ~/.ssh/id_rsa
然后改一下 .ssh 目录的权限,使用命令 “chmod 755 ~/.ssh”
之后把这个密钥对中的公共密钥复制到你要访问的机器上去,并保存为 ~/.ssh/authorized_keys.
$ scp ~/.ssh/id_rsa.pub rh1:/home/user1/.ssh/authorized_keys
user1@rh1’s password:
id_rsa.pub 100% 228 3.2MB/s 00:00
$
如何通过winscp获得ssh服务端的hostkey
WinSCP(SSH的FTP客户端)如何生成密钥登陆linux?之前有很朋友发现登陆linux时要输入密码验证才能上,后来有了KEY,便可以用KEY直接登陆,那么很多SSH工具都有生成KEY登陆的,在此,我介绍两个最常用的SSH登陆LINUX的工具给大家,并分袜迟扰享给大家如何生成密钥登陆LINUX;
之一,WINSCP这个工具无疑是广泛使用的一个工具,下载与安装这里不做介绍,众所周知;那么说一下,安装好WINSCP并没有SSH登陆LINUX的工具,我们得下载一个Putty登告旦陆工具,并有一个Puttygen这个工具,这是生成密钥的工具
然后我们打开WINSCP工具
下一步:
这个id_rsa.rsa怎旦拿么生成的呢?LOOK
输入命令后,直接回车-回车-回车便可以了,然后,在~.ssh/就会生成id_rsa,id_rsa.pub这个两个文件;COPY出来这两个文件,在WIN下面生成PPK文件,便可以用来认证登陆;
接着上面如何生成KEY登陆linux
以上保存后,我们便可以来使用生成的PPK文件来验证登陆LINUX了;LOOK
这样便可以登陆了
关于linux ssh key 生成的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。