ssh使用密钥验证

如果使用密码验证的方式连接服务器,虽说ssh所有传输的数据都会被加密,但有可能被有心人抓包下来破解或者服务器被冒充的风险。使用密钥验证的话可以有效解决这些安全隐患,就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器

window下使用xshell生成密钥与linux的ssh进行连接

1.新建连接

2.创建密钥

3.加密算法这里我选择RSA的加密,1024位

4.为了提高安全,添加密钥密码

5.保存公钥,并把公钥上传到ssh服务器上,可以用winscp,ftp或者直接拖入已建立ssh的xshel界面里。

6.在linux服务器上添加用户dragon,并且分配密码

[[email protected]~]# useradd dragon

You have new mail in /var/spool/mail/root

[[email protected] ~]# passwd dragon

Changing password for user dragon.

New UNIX password:

BAD PASSWORD: it is based on a dictionaryword

Retype new UNIX password:

passwd: all authentication tokens updatedsuccessfully.

7.切换到dragon用户上,为了在dragon用户的根目录生成ssh,ssh连接到本地主机。

[[email protected] ~]# su dragon

[[email protected] ~]$ ssh localhost

The authenticity of host ‘localhost(127.0.0.1)‘ can‘t be established.

RSA key fingerprint isc5:08:8a:e3:b9:fb:44:f4:0b:e3:9f:c4:d7:e2:11:8a.

Are you sure you want to continueconnecting (yes/no)? yes

Warning: Permanently added ‘localhost‘(RSA) to the list of known hosts.

[email protected]‘s password:

[[email protected] ~]$ ls -a

. ..  .bash_logout  .bash_profile .bashrc  .ssh

把把公钥放到dragon的.ssh里,并把权限改成644

[[email protected] ~]# mv authorized_keys/home/dragon/.ssh/

[[email protected] ~]# chmod 644/home/admin/.ssh/authorized_keys

8.切换回root修改ssh的配置文件,注意sshd_config是ssh服务器的配置文件。

把以下几项的注释去掉。

[[email protected] dragon]# vim/etc/ssh/sshd_config

RSAAuthentication yes             //开启RSA加密

PubkeyAuthentication yes                 //开启公钥

AuthorizedKeysFile      .ssh/authorized_keys             //密钥的路径

PermitRootLogin no                   //禁止root登陆

PasswordAuthentication no             //关闭密码验证

编辑完以后,重启sshd

9.在window使用xshell连接服务器

用户dragon无需密码就能登录服务器

Last login: Fri Dec  5 20:29:09 2014 from 192.168.1.111

[[email protected] ~]$

root登录的密码验证无法通过

linux与linux的ssh密钥验证

1.ssh-server添加用户admin,并分配密码。

[[email protected] ~]# useradd admin

[[email protected] ~]# passwd admin

Changing password for user admin.

New UNIX password:

BAD PASSWORD: it is based on a dictionaryword

Retype new UNIX password:

passwd: all a

uthentication tokens updated successfully.

2.切换到admin 在根目录ssh本地,生成.ssh

[[email protected] ~]$ ssh localhost

The authenticity of host ‘localhost(127.0.0.1)‘ can‘t be established.

RSA key fingerprint isc5:08:8a:e3:b9:fb:44:f4:0b:e3:9f:c4:d7:e2:11:8a.

Are you sure you want to continueconnecting (yes/no)? yes

Warning: Permanently added ‘localhost‘(RSA) to the list of known hosts.

[email protected]‘s password:

[[email protected] ~]$ ls -a

.  ..  .bash_logout .bash_profile  .bashrc  .ssh

[[email protected] ~]$

3.切换回root,修改配置文件/etc/sshd_config

RSAAuthentication yes             //开启RSA加密

PubkeyAuthentication yes                 //开启公钥

AuthorizedKeysFile      .ssh/authorized_keys             //密钥的路径

PermitRootLogin no                   //禁止root登陆

PasswordAuthentication no             //关闭密码验证

4.在客户机上生成公钥,并且scp上传到ssh-server上

[root$localhost ~]$ ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key(/home/admin/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in/home/admin/.ssh/id_rsa.

Your public key has been saved in/home/admin/.ssh/id_rsa.pub.

The key fingerprint is:

57:10:42:a9:87:d8:03:1d:f0:b0:f0:4d:5d:08:ea:[email protected]

[root$localhost ~]$ ls .ssh

id_rsa id_rsa.pub  known_hosts

[root$localhost .ssh]$ scp [email protected]:/root/

The authenticity of host ‘192.168.24.169(192.168.24.169)‘ can‘t be established.

RSA key fingerprint is 01:77:02:41:8b:f3:86:3e:e9:58:b3:f2:91:34:91:90.

Are you sure you want to continueconnecting (yes/no)? yes

Warning: Permanently added ‘192.168.1.149‘(RSA) to the list of known hosts.

[email protected]‘s password:

id_rsa.pub                                    100% 409     0.4KB/s   00:00

5.在ssh-sever,把公钥存放在/home/admin/.ssh/,并且把权限改成644

[[email protected] ~]# mv id_rsa.pub/home/admin/.ssh/authorized_keys

[[email protected] ~]# chmod 644/home/admin/.ssh/authorized_keys

6.客户机通过密钥登陆ssh-seve,root被拒绝。

[root$localhost .ssh]$ ssh -ladmin192.168.1.149

Last login: Thu Mar 28 20:28:28 2013 fromlocalhost.localdomain

[[email protected] ~]$

时间: 2024-10-16 02:28:07

ssh使用密钥验证的相关文章

远程控制服务:配置sshd服务,密钥验证登陆

配置sshd服务 1.概述: SSH(Secure Shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理 Linux 系统的首选方式.在此之前,一般使用 FTP 或 Telnet 来进行远程登录.但是因为它们 以明文的形式在网络中传输账户密码和数据信息,因此很不安全,很容易受到黑客发起的中 间人攻击,这轻则篡改传输的数据信息,重则直接抓取服务器的账户密码. 想要使用 SSH协议来远程管理Linux系统,则需要部署配置sshd 服务程序.sshd是基于SSH 协议开发的一款远程管

ssh密钥验证方式登录

三.SSH无密码(密钥验证)登录的配置 配置主机A免密登录到主机B 方法一) 1.在主机A生产密钥对: ssh-keygen -t rsa, 会在.ssh目录下产生密钥文件 2.拷贝主机A的公钥到主机B: scp id_rsa.pub host_name:file_dir 3.将主机A的公钥加到主机B的授权列表.ssh/authorized_keys(若不存在,手动创建): cat id_rsa.pub >> authorized_keys 4.授权列表authorized_keys的权限必须

PuTTY密钥验证登陆

配置方法: 1.在PuTTY下使用PuTTYgen生成公.私密钥 2.在/root/目录下创建 .ssh目录 3.在.ssh目录下创建authorized_keys文件,将生成的公钥复制到该文件内: 4.更改文件权限 .ssh(700)      authorized_keys(600) 5.关闭防火墙 (selinux和netfilter(iptables)) 临时关闭: selinux      -->         setenforce 0 netfilter     -->    

SSH之密钥登陆

SSH之密钥登陆  1.背景介绍 平时我们都是通过输入账号和密码的方式登陆远程终端,那有没有其他的玩法呢?答案是:当然有!下面就介绍一种通过密钥的方式登陆ssh. 工具准备:一台电脑(推荐win10),一台虚拟机(推荐vmware workstation11),ssh登陆工具(xshell,securecrt,putty,推荐xshell),linux系统(redhat,centos,debian,ubuntu,推荐centos7.3). 下面开始动手操作. 2.实验步骤 假设你已经通过ssh工

linux 密钥验证登录

centos 6.5 使用密钥验证登录,是修改ssh配置文件的.ssh服务相关的配置文件都保存在目录 /etc/ssh 中,其中sshd_config 是ssh服务的配置文件,ssh_config是客户机的配置文件,我们是在winodows下使用ssh工具来连接登录.所以不需要配置ssh_config.只需要配置sshd_config即可. 首先编辑sshd_config文件,把下面3行的注释打开: [[email protected] cong]# vim /etc/ssh/sshd_conf

SSH使用密钥登录并禁止口令登录实践

生成PublicKey Linux:ssh-keygen -t rsa[私钥 (id_rsa) 与公钥 (id_rsa.pub)]Windows:SecurCRT/Xshell/PuTTY[SSH-2 RSA 2048] 1 #生成SSH密钥对 2 ssh-keygen -t rsa 3 4 Generating public/private rsa key pair. 5 #建议直接回车使用默认路径 6 Enter file in which to save the key (/root/.s

xshell 使用密钥验证远程登录linux

使用xshell做密钥验证远程登录linux: 我这里用的工具:xshell 5 及 centos 6.5 首先在工具栏选择新建用户密钥生成向导,进行密钥对生成操作 下一步 生成公钥对,下一步 这里也可以直接点"完成",这里选"下一步"(原因看下一张图) 选中公钥复制,保留,或者保存为文件,后面要用到 在服务器端,保存公钥到服务器,修改相关文件 [[email protected] ~]# mkdir .ssh [[email protected] ~]# vim

ssh 建立github验证

建立ssh无验证连接 Check for SSH keys. cd ~/.ssh ls Check the directory listing to see if you have a file named either id_rsa.pub or id_dsa.pub 检查有无产生过的key,一台机器只能创建一个.如果重新创建则前一个会被覆盖. Generate a new SSH key ssh-keygen -t rsa -C "[email protected]"# Creat

CentOS6.x 用Putty使用密钥验证方式远程登录

1 ssh需要关闭SELinux,使用如下命令: # setenforce 0   # 临时关闭SELinux,重启后会开启 # vi /etc/selinux/config  修改配置文件使 SELINUX=disabled 2 关闭防火墙规则 # iptables -F      #清除防火墙规则 # service iptables save     #保存规则 3 使用PUTTYGEN.exe生成密钥对 1)打开软件后点击Generate生成公钥,生成的时候光标在进度条出来回移动来快速生