Linux之openssh服务配置

一、SSH介绍

SSH是Linux下远程管理的工具,默认端口号:22

查看端口的文件:/etc/services

二、在客户端连接sshd的方式(用户密码认证)

首先在客户端和服务端配置静态ip

ifconfig  #查看ip

1、ssh   服务端用户名@服务端ip地址     #在客户端连接服务端

2、ssh -l 服务端用户名 服务端ip地址    # -l 指定用户名,指定用户名去访问连接服务端

测试:在客户端用ssh命令连接172.25.254.169主机的root用户

当前主机第一次连接陌生主机时,会访问是否继续(理论上应该是对公钥的确认),确定连接后会自动建立 .ssh/know_hosts 文件,此文件记录的是连接过的主机信息,后面连接此主机时就不会再次访问

exit      #退出当前连接的主机

注意:上面的连接方式是不能打开远程主机的图形功能,如果需要打开远程主机图形功能需要加上 -X

三、给ssh服务添加新的认证方式 KEY认证(使用加密算法RSA,免密登录)

具体步骤:

1、服务端生成密钥对

1、生成锁和钥匙

ssh-keygen    #生成密钥的命令

Enter file in which to save the key (/root/.ssh/id_rsa):     #保存加密字符的文件用默认

随机加密数是在/dev/random 下取的

2、加密ssh用户的认证

在服务端:

ssh-copy-id -i /root/.ssh/id_rsa.pub 加密用户名@主机ip

ssh-copy-id   #加密命令

-i   #指定密钥

/root/.ssh/id_rsa.pub   #密钥

 

3、验证

1.客户端连接时需要密码

2.把解密文件传输到客户端则不需要密码

1)把服务端把服务端文件复制到客户端(上传文件

scp /root/.ssh/id_rsa  root@172.25.254.196:/root/.ssh/

复制    服务端文件 客户端:位置

2)在客户端把服务端文件复制到客户端(下载文件

scp root@172.25.254.169:/root/.ssh/id_rsa   /root/.ssh/

复制 服务端:文件      客户端位置

如果用户没有/root/.ssh目录,在复制时就会自动生成一个.ssh文件,可以建立一个/root/.ssh目录,但是权限会比系统的大,需要手动修改权限

authorized_keys     #当此文件被服务端删除,客户端解密文件失效,连接需要密码

 

cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys     #在服务端重新生成锁文件,解密文件功能恢复,客户端不需密码

2、客户端生成密钥对

原理:A主机免密登录B主机

1、A主机需要生成密钥对(公钥和私钥),并将公钥远程发送给B主机,B主机对A主机的公钥授权追加到文件authorized_keys(专门存放公钥)

2、当A发送登录请求时,B会寻找文件里面的公钥并进行公钥的对比,如果一样,B会生成一个随机字符串并用A的公钥加密后发送给A

3、A用私钥进行解密,并将解密后的得到字符串发送给B,B验证字符串是否一致,如果一致则成功登录

具体步骤:

在client端生成密钥对

[root@client ~]# ssh-keygen  #生成密钥对
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:
03:ed:b8:bb:fc:1c:17:e4:0f:fe:6e:7e:f0:ba:bc:f4 root@Linux
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|       .         |
|      . . .      |
|       + o       |
|      . S +      |
|       . o +.    |
|      . . o oo   |
|     . o o +..o  |
|      +oo  +O=E  |
+-----------------+

将公钥远程拷贝到server端的root家目录指定位置:

[root@client ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.169.133
The authenticity of host '192.168.169.133 (192.168.169.133)' can't be established.
RSA key fingerprint is 98:d1:a4:f6:69:df:cf:30:bc:cc:9f:05:49:c5:6e:5b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.169.133' (RSA) to the list of known hosts.
root@192.168.169.133's password: 
Now try logging into the machine, with "ssh 'root@192.168.169.133'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

在server查看:
[root@server ~]# cd .ssh
[root@server .ssh]# ls
authorized_keys
[root@server .ssh]# cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2VKF/ePnhV9mSxribcyJS3W8JzIMS+z4WkocyP7MMGAME+A020cQWQ0w9qfWCkiTIq81KNQ3q0u3ND/vFpVu840FSYudCfkWDQSCrv899BnNo96ojs58r4snFkWEb09+4NOQT6Jlo07dxIwTVBlEzcf0l1ZpzsFm1TehqlLS1FJCWejRBz36UeuK6+g4fEfuEShFs5eB2n573Ao97JPUwFIzyQQjoI3z50cvPebLcYSau5c9vkDU6GXJkc5EPdmuR4Hac4MQuLnke+czqvjuq4BtKCjtCtjRl8ulrjXd+prbUYDoCMM7fSuMgWTQK76Pslcn+jdWp/eR23flag2JbQ== root@Linux

测试验证:

[root@client ~]# ssh root@192.168.169.133
Last login: Sun Apr  7 00:05:25 2019 from 192.168.169.134

四、sshd的安全配置

vim /etc/ssh/sshd_config      #打开文件修改原始认证方式

1.禁止原始认证方式

78 PasswordAuthentication no|yes     #开启或关闭ssh的默认认证方式(改完之后重启服务,其中no不用密码登录。)

#在78为yes的情况下操作以下步骤:

48 PermitRootLogin no|yes     #开启或关闭root用户的登陆权限(其他用户可以登录)

AllowUsers westos     #用户白名单,当前设定是只允许westos登陆

DenyUsers linux     #用户黑名单,当前设定是只不允许linux登陆

注意:白名单和黑名单只允许出现一个,以上操作都要重启服务

测试:在服务端将 student 用户设在白名单里面,在服务端连接显示如下:( root 用户连接不上,student 可连接)

展开阅读全文

没有更多推荐了,返回首页