Linux ssh密钥自动登录

Linux ssh密钥自动登录
在开发中,经常需要从一台主机ssh登陆到另一台主机去,每次都需要输一
次login/Password,很繁琐。

今天google了一下,设置了密钥登陆,特地分享一下:
实现从主机A免密码登陆到主机B,需要以下几个步骤:
1. 在主机A“~/.ssh/”目录下执行命令“ssh-keygen -t rsa”(生成过程中,一路回车),生成两个文件id_rsa和id_rsa_pub,这两个文件实际上是一个密钥对,id_rsa是私钥,id_rsa_pub是公钥;
2. 将文件id_rsa_pub从主机A拷贝(可以使用scp命令)到主机B“~/.ssh/”目录下;
3. 登陆到主机B上,进入“~/.ssh/”目录,将从主机拷贝来的id_rsa_pub 文件添加到文件“authorized_keys”尾部(cat
id_rsa_pub>>authorized_keys),若文件“authorized_keys”不存在,则创建;确保“~/.ssh /authorized_keys”的权限至少为600;
4. 从主机A登陆主机B,第一次登陆时主机B要自动设置known_hosts文件,所以需要输入yes,以后就不需要了;
P.S.当然你登陆主机A和主机B用的是同一个用户名
锦上添花:
假设你的用户名为user,已经设置好了密钥登陆主机B。

那么你可以在shell 的配置文件(比如.bashrc)里定义一个alias
alias b='ssh user@B'
以后每次你启动shell终端后,输入b,回车,直接就ssh登陆到主机B上。

下午刚在自己的开发环境上设置好,顿时觉得节约不少时间,呵呵。

合集下载

linuxssh使用深度解析(key登录详解)

linuxssh使用深度解析(key登录详解)

linuxssh使用深度解析(key登录详解)Linux SSH 是一种远程登录协议,能够通过加密的方式在网络上安全地传输数据。

SSH 允许用户使用远程计算机上的命令行来执行操作,而无需直接物理访问该计算机。

SSH 使用公钥加密技术来验证用户身份,并通过密钥登录来确保通信的安全性。

在 Linux 中使用 SSH,可以使用两种方法进行身份验证:密码登录和密钥登录。

密码登录需要输入用户名和密码,而密钥登录则使用公钥和私钥进行身份验证。

密钥登录是一种更安全和方便的方式。

在密钥登录中,用户生成一对密钥:公钥和私钥。

用户将公钥复制到远程计算机上的`~/.ssh/authorized_keys` 文件中,而私钥则保存在用户本地计算机上。

当用户尝试通过 SSH 连接到远程计算机时,系统会使用私钥对用户的身份进行验证。

下面是使用密钥登录的详细步骤:1. 生成密钥对:使用 `ssh-keygen` 命令生成密钥对。

该命令会提示用户选择密钥的保存位置和输入密钥密码。

2. 将公钥复制到远程计算机:使用 `ssh-copy-id` 命令将公钥复制到远程计算机上。

该命令会提示用户输入远程计算机的密码。

使用密钥登录有以下优点:1.安全性:密钥登录使用公钥加密技术,比密码登录更加安全。

私钥只保存在用户本地计算机上,不会在网络传输中暴露。

2.方便性:密钥登录可以免去输入密码的麻烦。

用户只需输入私钥密码(如果设置了)即可登录。

3.自动化:密钥登录可以与脚本和自动化工具结合使用,实现自动化部署和管理。

需要注意以下几点:1.密钥的安全性:私钥是用户身份的关键,需要妥善保存。

私钥不应该被泄露或丢失,否则可能导致未经授权的访问。

2. 密钥的权限:在将公钥复制到远程计算机上时,需要确保`~/.ssh/authorized_keys` 文件的权限设置正确。

该文件应该只对所有者可写,并且不能对其他用户可读或写。

3.密钥的备份:为了避免因为私钥丢失而导致无法访问远程计算机,建议将私钥备份到安全的地方。

Linux配置SSH免密登录“ssh-keygen”的基本用法

Linux配置SSH免密登录“ssh-keygen”的基本用法

Linux配置SSH免密登录“ssh-keygen”的基本⽤法⽬录1 什么是SSH2 配置SSH免密登录2.1 安装必需的软件2.2 ssh-keygen创建公钥-私钥对2.3 ssh-copy-id把A的公钥发送给B2.4 在A服务器上免密登录B服务器3 扩展说明3.2 ⽂件权限3.3 ⽂件的编辑和查看1 什么是SSH引⽤百度百科的说明:SSH 为 Secure Shell的缩写,由 IETF 的⽹络⼩组(Network Working Group)所制定;它是建⽴在应⽤层基础上的安全协议。

SSH 是⽬前较可靠,专为远程登录会话和其他⽹络服务提供安全性的协议。

利⽤ SSH 协议可以有效防⽌远程管理过程中的信息泄露问题。

SSH最初是UNIX系统上的⼀个程序,后来⼜迅速扩展到其他操作平台。

为了在不同平台/⽹络主机之间的通信安全, 很多时候我们都要通过ssh进⾏认证. ssh认证⽅式主要有2种:①基于⼝令的安全认证: 每次登录的时候都要输⼊⽤户名和密码, 由于要在⽹络上传输密码, 可能存在中间⼈攻击的风险;②基于密钥的安全认证: 配置完成后就可以实现免密登录, 这种⽅式更加安全 —— 不需要在⽹络上传递⼝令, 只需要传输⼀次公钥. 常见的git的ssh⽅式就是通过公钥进⾏认证的.2 配置SSH免密登录说明: 这⾥演⽰所⽤的服务器操作系统是Cent OS 7. 我们的⽬标是:A服务器(172.16.22.131) 能免密登录 B服务器 (172.16.22.132).注意: ssh连接是单向的, A能免密登录B, 并不能同时实现B能免密登录A.2.1 安装必需的软件在操作之前, 先确保所需要的软件已经正常安装.这⾥我们需要安装ssh-keygen和ssh-copy-id, 安装⽅式如下:# 安装ssh-keygen, 需要确保服务器可以联⽹. 博主这⾥已经安装完成, 所以没有做任何事.[root@localhost ~]# yum install -y ssh-keygenLoaded plugins: fastestmirror, langpacksbase | 3.6 kB 00:00:00epel | 3.6 kB 00:00:00extras | 2.9 kB 00:00:00updates | 2.9 kB 00:00:00Loading mirror speeds from cached hostfileNo package ssh-keygen available.Error: Nothing to do# 安装ssh-copy-id[root@localhost ~]# yum install -y ssh-copy-idLoaded plugins: fastestmirror, langpacksLoading mirror speeds from cached hostfileNo package ssh-copy-id available.Error: Nothing to do2.2 ssh-keygen创建公钥-私钥对(1) 在指定⽬录下⽣成rsa密钥, 并指定注释为“shoufeng”, 实现⽰例:[root@localhost ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -C "shoufeng"# ~密钥类型 ~密钥⽂件路径及名称 ~ 备注信息Generating public/private rsa key pair.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:9a:e3:94:b9:69:c8:e9:68:4b:dc:fa:43:25:7f:53:f1 shoufengThe key's randomart image is:+--[ RSA 2048]----+| || . || o || . . . E || + S. || . .. .=o || oo.oB. . || ..o=o.+ || .++oo+ |+-----------------+注意: 密钥的⽂件名称必须是id_xxx, 这⾥的xxx就是-t参数指定的密钥类型. ⽐如密钥类型是rsa, 那么密钥⽂件名就必须是id_rsa.(2) ssh-keygen常⽤参数说明:-t: 密钥类型, 可以选择 dsa | ecdsa | ed25519 | rsa;-f: 密钥⽬录位置, 默认为当前⽤户home路径下的.ssh隐藏⽬录, 也就是~/.ssh/, 同时默认密钥⽂件名以id_rsa开头. 如果是root⽤户, 则在/root/.ssh/id_rsa, 若为其他⽤户, 则在/home/username/.ssh/id_rsa; -C: 指定此密钥的备注信息, 需要配置多个免密登录时, 建议携带;-N: 指定此密钥对的密码, 如果指定此参数, 则命令执⾏过程中就不会出现交互确认密码的信息了.举例说明: 同时指定⽬录位置、密码、注释信息, 就不需要输⼊回车键即可完成创建:ssh-keygen -t rsa -f ~/.ssh/id_rsa -N shoufeng -C shoufeng(3) 前往~/.ssh/⽬录下查看⽣成的⽂件:# ⽣成的⽂件以test_rsa开头, test_rsa是私钥, test_rsa.pub是公钥:[root@localhost .ssh]# lstest_rsa test_rsa.pub# 通过cat命令查看公钥⽂件:[root@localhost .ssh]# cat id_rsa.pubssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2JpLMqgeg9jB9ZztOCw0WMS8hdVpFxthqG1vOQTOji/cp0+8RUZl3P6NtzqfHbs0iTcY0ypIJGgx4eXyipfLvilV2bSxRINCVV73VnydVYl5gLHsrgOx+372Wovlanq7Mxq06qAONjuRD0c64xqdJFKb1Ov# 可以看到最后有⼀个注释内容shoufeng2.3 ssh-copy-id把A的公钥发送给B默认⽤法是: ssh-copy-id root@172.16.22.132, ssh-copy-id命令连接远程服务器时的默认端⼝是22, 当然可以指定⽂件、远程主机的IP、⽤户和端⼝:# 指定要拷贝的本地⽂件、远程主机的IP+⽤户名+端⼝号:[root@localhost .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 root@172.16.22.132/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keysroot@172.16.22.132's password: # 输⼊密码后, 将拷贝公钥Number of key(s) added: 1Now try logging into the machine, with: "ssh -p '22' 'root@172.16.22.132'"and check to make sure that only the key(s) you wanted were added.2.4 在A服务器上免密登录B服务器[root@localhost .ssh]# ssh root@172.16.22.132Last login: Fri Jun 14 08:46:04 2019 from 192.168.34.16 # 登录成功3 扩展说明3.1 其他⽅式发送公钥⽂件上述2.3步骤是通过ssh-copy-id⼯具发送公钥⽂件的, 当然我们也可以通过其他⽅式实现:(1) 将A的公钥⽂件发给B:通过scp命令将A服务器的公钥⽂件发送到B服务器的⽤户⽬录下, 因为还没有配置成功免密登录, 所以期间需要输⼊B服务器对应⽤户的密码:[root@localhost .ssh]# scp id_rsa.pub root@172.16.22.132:/root/.sshroot@172.16.22.132's password:id_rsa.pub 100% 390 0.4KB/s 00:00(2) 在B上创建authorized_keys⽂件:[root@localhost .ssh]# cd /root/.ssh/[root@localhost .ssh]# lsid_rsa.pub# 通过A服务器的公钥⽣成"authorized_keys"⽂件:[root@localhost .ssh]# cat id_rsa.pub >> authorized_keys[root@localhost .ssh]# cat authorized_keysssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2JpLMqgeg9jB9ZztOCw0WMS8hdVpFxthqG1vOQTOji/cp0+8RUZl3P6NtzqfHbs0iTcY0ypIJGgx4eXyipfLvilV2bSxRINCVV73VnydVYl5gLHsrgOx+372Wovlanq7Mxq06qAONjuRD0c64xqdJFKb1OvS/nyKaOr9注意: 上述重定向时使⽤>>进⾏追加, 不要⽤>, 那会清空原有内容.3.2 ⽂件权限为了让私钥⽂件和公钥⽂件能够在认证中起作⽤, 需要确保权限的正确性:①对于.ssh⽬录以及其内部的公钥、私钥⽂件, 当前⽤户⾄少要有执⾏权限, 其他⽤户最多只能有执⾏权限.②不要图省事设置成777权限: 太⼤的权限不安全, ⽽且数字签名也不⽀持这种权限策略.③对普通⽤户, 建议设置成600权限: chmod 600 authorized_keys id_rsa id_rsa.pub;④对root⽤户, 建议设置成644权限: chmod 644 authorized_keys id_rsa id_rsa.pub.3.3 ⽂件的编辑和查看在Liunx环境下, 如果要查看、复制私钥、公钥, 以及authorized_keys等⽂件, 不要使⽤vim等编辑器打开, 因为它会产⽣不必要的回车;应该通过cat、more、less等查看命令把内容打印到终端上, 再作查看、复制等操作.总结以上所述是⼩编给⼤家介绍的Linux 配置SSH免密登录 “ssh-keygen”的基本⽤法 ,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。

如何使用ssh命令在Linux终端中远程登录到其他计算机

如何使用ssh命令在Linux终端中远程登录到其他计算机

如何使用ssh命令在Linux终端中远程登录到其他计算机SSH(Secure Shell)是一种网络协议,用于通过加密的方式在网络上进行安全的远程登录连接。

在Linux系统中,通过使用ssh命令,我们可以方便地在终端中远程登录到其他计算机。

本文将介绍如何在Linux终端中使用ssh命令进行远程登录,并提供一些SSH命令的常见用法。

请根据需要自行调整命令格式。

1. 首先,确保你的Linux系统已经安装了OpenSSH软件包。

若未安装,可以使用以下命令进行安装:```sudo apt-get install openssh-server # Ubuntu/Debian系统sudo yum install openssh-server # CentOS/RHEL系统```安装完成后,系统会自动启动SSH服务,并将其设置为开机自启动。

2. 远程登录到另一台计算机,需要知道目标计算机的IP地址或域名。

假设目标计算机的IP地址为192.168.0.100。

在本地计算机的终端中,输入以下命令以连接到目标计算机: ```*******************.0.100```其中,`username`是目标计算机上的有效用户名。

如果连接成功,系统会提示输入密码。

输入密码时,终端中不会显示任何字符,这是正常的安全特性。

如果已经为目标计算机设置了SSH密钥对登录,则可以不输入密码直接登录。

3. 在终端中远程登录后,你可以在目标计算机上执行各种命令,就像在本地计算机上一样。

以下是一些常用的SSH命令用法: - 复制文件从本地计算机到远程计算机:```scp /path/to/local/file****************.0.100:/path/to/remote/directory```- 复制文件从远程计算机到本地计算机:```*******************.0.100:/path/to/remote/file/path/to/local/directory```- 在远程计算机上执行命令,并将结果输出到本地计算机:```*******************.0.100"command">/path/to/local/file```其中,`command`是你要在远程计算机上执行的命令。

xshell使用key登录linux

xshell使用key登录linux

xshell使用key登录linux
使用key登录linux可以不用每次输入密码。

ssh客户端用的是xshell。

1、点击Authentication
2、Method选择Public Key,点击Browse
3、点击Generate生成public/private key
4、点击Next
5、自动生成Key,随后点击Next
6、设置Key的名称和保护密码保护密码也可以不设。

7、保存公钥,点击Save as file
8、点击OK
9、登录上linux主机,建立~/.ssh/authorized_keys文件,将保存的公钥文件mykey.pub里的内容复制到authorized_keys里。

mkdir ~/.ssh
vim ~/.ssh/authorized_keys
10、编辑sshd配置文件
vim /etc/ssh/sshd_config
将以下注释去掉:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
修改:
PasswordAuthentication yes
为:
PasswordAuthentication no
禁止使用密码登录。

11、重启sshd服务
service sshd restart
12、使用Key+保护密码登录
这样要登录linux主机就只能凭用户名+Key+保护密码登录,禁用了用户名+密码方式登录,安全性大大提高。

linux下的密钥认证登录步骤以及各步骤使用的命令。

linux下的密钥认证登录步骤以及各步骤使用的命令。

linux下的密钥认证登录步骤以及各步骤使用的命令。

在Linux系统中,密钥认证是一种更加安全和方便的登录方式,相比于传统的用户名和密码登录,密钥认证可以提供更高的安全性和自动化操作。

下面是密钥认证登录的步骤以及所涉及的命令:第一步:生成密钥对在本地系统上生成一对密钥,包括公钥和私钥。

公钥用于将其传输到远程主机上,私钥留在本地系统上,用于后续的认证过程。

生成密钥的命令是:```ssh-keygen -t rsa```在执行命令后,系统会要求输入保存密钥的文件名(可按回车键使用默认文件名)和设置密码(可以选择为空)。

第二步:传输公钥到远程主机将生成的公钥传输到远程主机上,以便将其添加到用户的授权文件中,从而实现认证。

以下命令可以将公钥复制到远程主机上:```ssh-copy-id username@remote_host```其中,username是远程主机上的登录用户名,remote_host是远程主机的IP地址或域名。

第三步:配置远程主机在远程主机上,需要编辑SSH服务器的配置文件以启用密钥认证。

可以使用文本编辑器打开配置文件,并进行相应的修改:```sudo vi /etc/ssh/sshd_config```找到配置文件中的`PasswordAuthentication`行,将其改为`no`以禁用密码认证。

然后找到`PubkeyAuthentication`行,并确保其值为`yes`以启用密钥认证。

第四步:重启SSH服务器在编辑完成配置文件后,需要重启SSH服务器使更改生效:```sudo systemctl restart sshd```至此,密钥认证登录的配置已经完成。

现在你可以通过以下命令来实现密钥认证登录:```ssh username@remote_host```其中,username是远程主机上的登录用户名,remote_host是远程主机的IP地址或域名。

密钥认证登录提供了更高的安全性,因为私钥不会被传输到网络中,只保存在本地系统中。

linux 免密登录方法

linux 免密登录方法

linux 免密登录方法Linux是一种常用的操作系统,它具有高度的灵活性和安全性。

在Linux中,免密登录是一个非常常见的需求,它可以提高用户的使用效率并简化操作流程。

本文将介绍几种实现Linux免密登录的方法,帮助用户轻松实现免密登录。

一、使用公钥认证实现免密登录公钥认证是一种基于非对称加密的身份认证方式,它通过生成一对密钥,即公钥和私钥,来实现身份认证。

在Linux中,使用公钥认证可以实现免密登录。

具体步骤如下:1. 生成密钥对需要在客户端上生成密钥对。

可以使用以下命令生成密钥对:```$ ssh-keygen```按照提示输入密钥保存路径和密码,即可生成密钥对。

2. 复制公钥到服务器生成密钥对后,需要将公钥复制到服务器上。

可以使用以下命令将公钥复制到服务器上:```$ ssh-copy-id username@server_ip其中,username是服务器上的用户名,server_ip是服务器的IP 地址。

3. 免密登录完成以上步骤后,就可以实现免密登录了。

可以使用以下命令测试免密登录:```$ ssh username@server_ip```如果成功登录服务器而不需要输入密码,则表示免密登录已经成功实现。

二、使用密钥管理工具实现免密登录除了使用公钥认证,还可以使用一些密钥管理工具来实现免密登录。

这些工具可以帮助用户管理密钥,并自动完成密钥的复制和配置。

以下是几个常用的密钥管理工具:1. ssh-copy-idssh-copy-id是一个用于将公钥复制到服务器的工具。

可以使用以下命令将公钥复制到服务器上:```$ ssh-copy-id username@server_ip其中,username是服务器上的用户名,server_ip是服务器的IP 地址。

2. keychainkeychain是一个用于管理密钥的工具,它可以自动加载和管理密钥。

可以使用以下命令安装keychain:```$ sudo apt-get install keychain```安装完成后,可以使用以下命令将密钥添加到keychain中:```$ keychain ~/.ssh/id_rsa```然后,每次登录服务器时,keychain会自动加载密钥,实现免密登录。

Linux命令高级技巧使用ssh命令进行远程登录与操作

Linux命令高级技巧使用ssh命令进行远程登录与操作在Linux系统中,ssh命令是一种通过网络连接远程主机并进行操作的强大工具。

它提供了一种安全的方式来远程登录到Linux服务器,并执行各种命令。

本文将介绍一些使用ssh命令进行远程登录与操作的高级技巧。

一、生成和使用SSH密钥对SSH密钥对由公钥和私钥组成,用于在远程主机之间进行身份验证。

生成和使用SSH密钥对使得远程登录更加安全和方便。

1. 生成SSH密钥对使用以下命令在本地生成SSH密钥对:$ ssh-keygen -t rsa这将生成一个新的RSA密钥对,并提示您输入密钥文件的名称和密码。

您可以选择使用默认值或自定义设置。

2. 将公钥复制到远程主机生成SSH密钥对后,您需要将公钥复制到远程主机以进行身份验证。

可以使用以下命令将公钥复制到远程主机的~/.ssh/authorized_keys文件中:$ ssh-copy-id username@remote_host请将"username"替换为您在远程主机上的用户名,"remote_host"替换为远程主机的IP地址或域名。

3. 使用SSH密钥对进行登录您可以使用以下命令通过SSH密钥对进行远程登录:$ ssh -i /path/to/private_key username@remote_host请将"/path/to/private_key"替换为您的私钥文件的路径,"username"替换为您在远程主机上的用户名,"remote_host"替换为远程主机的IP 地址或域名。

二、使用SSH代理进行远程端口转发SSH代理是一种允许您在本地主机和远程主机之间建立安全通信通道的功能。

使用SSH代理,您可以在远程主机上打开本地主机上的端口,实现远程端口转发。

1. 启动SSH代理在本地主机上使用以下命令启动SSH代理:$ ssh-agent2. 添加私钥到SSH代理使用以下命令将私钥添加到SSH代理:$ ssh-add /path/to/private_key请将"/path/to/private_key"替换为您的私钥文件的路径。

Xshell配置SSH密钥登录Linux服务器

Xshell配置SSH密钥登录Linux服务器1.生成公钥(Pubic Key)与私钥(Private Key)Xshell自带有用户密钥生成向导,如下图所示:点击菜单栏的工具->新建用户密钥生成向导虽然SSH2协议中RSA和DSA算法都可以使用,但是为了保险起见,我们一般都选择RSA密钥类型,这样不论你使用的SSH协议是SSH1还是SSH2都可以使用;密钥长度1024位即可.正在生成密钥,直接下一步即可密钥名称可以随便填写,不过一般我们最好是默认名称_年月日,这样方便日后管理;一般不需要填写密钥密码,填写的话就是密钥加密码双重验证,更安全.公钥格式默认的SSH-OpenSSH即可,这里点击保存为文件,选择一个路径文件名默认即可此时会弹出用户密钥的一个窗口,Xshell已经自动导入了刚才我生成的私钥,公钥已经被我保存在了桌面上(你刚才选择的文件路径)如果没有弹出上面的窗口,可以选择菜单栏的工具->用户密钥管理者,打开用户密钥这个窗口.选中刚才生成的私钥,点击右侧的导出按钮选择文件路径,这里我选择保存到了桌面,文件名默认即可,我们就把私钥导出来了,如果换电脑或者重装系统了,重新导入私钥即可.2.添加公钥(Pubic Key)到远程Linux服务器1)用xftp上传id_rsa_1024_20140305.pub到用户home目录下的.ssh下(如果没有创建此目录),并重命名为:authorized_keys,再修改权限.mkdir -p /root/.sshmv /root/id_rsa_1024_20140305.pub /root/.ssh/authorized_keyschmod 600 /root/.ssh/authorized_keys2)修改sshd_config配置文件vim /etc/ssh/sshd_configPubkeyAuthentication yes #启用公告密钥配对认证方式AuthorizedKeysFile .ssh/authorized_keys #设定PublicKey文件路径RSAAuthentication yes #允许RSA密钥PasswordAuthentication no #禁止密码验证登录,如果启用的话,OpenSSH 的 RSA认证登录就没有意义了.3)重新加载sshd服务/etc/init.d/sshd restart3.客户端载入私钥(Private Key)登录原来用密码登录的Linux服务器,现在在客户端需要载入私钥登录注:私钥,在Xshell里也叫用户密钥公钥,在Xshell里也叫主机密钥--------------------------------结束---------------------------------2014年3月6日星期四。

linux中的ssh服务管理(用ssh登录到另一台远程主机)

linux中的ssh服务管理(⽤ssh登录到另⼀台远程主机)Linux 远程登录服务:ssh ·SSH是标准的⽹络协议,可⽤于⼤多数,能够实现字符界⾯的远程登录管理,它默认使⽤22号端⼝,采⽤密⽂的形式在⽹络中传输数据,相对于通过明⽂传输的Telnet,具有更⾼的安全性。

·SSH提供了⼝令和密钥两种⽤户验证⽅式,这两者都是通过密⽂传输数据的。

·不同的是,⼝令⽤户验证⽅式传输的是⽤户的账户名和密码,这要求输⼊的密码具有⾜够的复杂度才能具有更⾼的安全性。

·⽽基于密钥的安全验证必须为⽤户⾃⼰创建⼀对密钥,并把共有的密钥放在需要访问的服务器上。

当需要连接到SSH服务器上时,客户端软件就会向服务器发出请求,请求使⽤客户端的密钥进⾏安全验证。

服务器收到请求之后,先在该⽤户的根⽬录下寻找共有密钥,然后把它和发送过来的公有密钥进⾏⽐较。

如果两个密钥⼀致,服务器就⽤公有的密钥加密“质询”,并把它发送给客户端软件。

客户端收到质询之后,就可以⽤本地的私⼈密钥解密再把它发送给服务器。

这种⽅式是相当安全的。

Linux下搭建ssh服务器 本⼈实验平台是Fedora14 2.6.35.6 ⼀、安装ssh ssh软件由两部分组成:ssh服务端和ssh客户端。

ssh的配置⽂件在/etc/ssh/⽬录下,其中服务端的配置⽂件是sshd_config,客户端的配置⽂件是ssh_config. 安装ssh,在这⾥,只讲述通过yum安装的⽅法(前提是你的yum源配置正确,并且能使⽤): # yum install openssh-* -y //yum会⾃动安装所有openssh相关的软件包 ⼆、配置ssh服务器 根据ssh的两种验证⽅式,配置两种不能安全级别的登录⽅式。

·通过⼝令验证⽅式登录 1.⽤vim编辑器打开sshd_config配置⽂件 # vim /etc/ssh/sshd_config 2.对配置⽂件进⾏如下修改(根据⾃⾝实际情况可有所调整): Port 22 //默认使⽤22端⼝,也可以⾃⾏修改为其他端⼝,但登录时要打上端⼝号 #ListenAddress //指定提供ssh服务的IP,这⾥我注释掉。

用private key让putty(ssh)自动登录

$ cd ~
$ mkdir .ssh
$ chmod 700 .ssh
$ cd .ssh
$ cat > authorized_keys
(复制puttygen public Key 文本框内的内容,按 Ctrl+C 复制到剪贴板中。以前产生的key,那么使用load 功能,就可以显示public key了,然后在Putty窗口中按Shift+Ins粘贴)
方法二:使用linux命令ssh-keygen
第一步:产生key
ssh-keygen -b 密匙长度 -t 密匙类型
密匙类型可以是:rsa1 (对应SSH1 RSA)、rsa 和 dsa (对应SSH2)
如:
$ ssh-keygen -b 1024 -t rsa
默认在~/.ssh下会生成 id_rsa和 id_rsa.pub
这一步就不用了)
选择菜单Conversions->Export OpenSSH key,保存成文件id_rsa,上传到linux
主机的~/.ssh/目录下,这样这台主机就可以不用密码登陆到前面放有public key的
主机上了。
$ chmod 600 ~/.ssh/id_rsa
=================================================
passphrase可以为空,免得登录时还是要输入一次密码。
点击Save private key 按钮保存公匙和私匙,例如key.ppk,public key不用保存,以后使用Puttygen.exe Load功能就可以显示public key。
第二步:上传密匙
用自己的帐号登录linux主机,然后执行下面的命令:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档