如何生成Linux SSH密钥 (linux ssh key 生成)

在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是一个用来替代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 生成的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 如何生成Linux SSH密钥 (linux ssh key 生成)