linux:ssh远程访问和免密登录

ssh介绍

ssh服务由openssh安装,openssh是一个开源软件,在系统安装时安装好,开机自动启动,服务名是sshd。ssh使用TCP的22端口,是一个应用层协议。ssh由于使用加密传输相比于telnet协议更安全。
sshd服务包含几个重要文件:服务端主程序/usr/sbin/sshd,服务端配置文件/etc/ssh/sshd_config客户端配置文件/etc/ssh/ssh_config。linux默认开启sshd,所以linux既是服务端也是客户端,能否做服务端可以看有无sshd配置文件,能否做客户端可以看有无ssh配置文件。
在客户端连接时调用服务端配置文件中的配置,在连接别的linux时,调用客户端配置文件中的配置。
ssh只有管理员用户才能使用,虽然对客户端配置文件进行修改可以调整连接别的linux时的设置,但是大部分时候都对服务端的配置文件进行修改。
ssh的服务启动文件位于/usr/lib/systemd/system/sshd.service,可以通过systemctl工具控制。

ssh配置文件介绍

通常都是对服务端进行配置,服务端配置文件位于/etc/ssh/sshd_config,在这个文件中用#注释掉的内容表示sshd默认配置是什么,如果要修改,把#去掉再对配置进行修改。我们主要看该文件的17、19、22-25、37-43、63、64、96、115、116行。

进入文件输入:set nu显示行号
17 #Port 22							 ssh协议的端口号,默认为22,为了安全考虑,通常会修改成别的端口号
19 #ListenAddress 0.0.0.0            监听地址,默认监听所有地址(0.0.0.0表示所有ip地址)
22 HostKey /etc/ssh/ssh_host_rsa_key       这四行指加密密钥存放的文件位置
23 #HostKey /etc/ssh/ssh_host_dsa_key      rsa、dsa、ecdsa、ed25519是加密算法的类型
24 HostKey /etc/ssh/ssh_host_ecdsa_key
25 HostKey /etc/ssh/ssh_host_ed25519_key
37 #LoginGraceTime 2m                远程登录后的超时时间,默认两分钟
38 #PermitRootLogin yes              允许登录root用户,yes允许,no不允许,默认允许用户登录
39 #StrictModes yes					 验证模式,不太重要
40 #MaxAuthTries 6					 远程登陆时允许认证的最大次数,也就是最多输入多少次密码,默认6次,超过就不允许登录
41 #MaxSessions 10					 允许同时连接的最大数量,默认1042                                	 空行不看
43 #PubkeyAuthentication yes		 公钥认证,yes开启,no不开启,默认开启
63 #PasswordAuthentication yes	 	 密码认证,yes开启,no不开启,默认开启
64 #PermitEmptyPasswords no			 允许空密码登录,yes开启,no不开启,默认关闭
96 UsePAM yes						 进行pam认证,yes开启,no不开启
115 #UseDNS yes						 进行dns解析,yes开启,no不开启,在不需要dns解析时建议改成no,减少连接花费的时间
116 #PidFile /var/run/sshd.pid		 当启动一个服务一个进程的时候会产生一个pidfile文件,这个文件存放这个服务这个进程的pid号   后面显示的是这个进程的进程号的文件位置,当各种办法都没法停止进程时,删除这个文件就可以停止进程,这里显示这个文件存放的位置
Allowusers							 这两行需要手动添加,一个是白名单,一个是黑名单,允许或拒绝从某个ip地址登录,
Denyusers							 格式为Allowusers root@192.168.214.214 允许192.168.214.214远程登录root用户,不写@ip地址默认允许或拒绝从任何主机登录,如果黑白名单同时存在,黑名单优先

ssh远程访问linux

用一台linux当作客户端访问另一台

[root@localhost ~]# ssh root@192.168.214.214   ssh登录服务端,默认连接22端口,如果在服务端配置文件修改了端口,要么进客户端配置文件把端口改成一致要么按ssh -p 端口号 root@192.168.214.214的格式输入
root@192.168.214.214's password: 
Last login: Tue May 25 14:17:30 2021 from 192.168.60.1

ssh的其他选项

ssh -o NumberOfPasswordPrompts=8 root@192.168.214.214   客户端连接的时候对最大密码认证次数进行限制,这里限制为8次
ssh -t     检查配置文件的语法有无出错
ssh -p     后面跟端口号,在连接的时候通过写的端口号进行连接

ssh免密登录

在这里插入图片描述

过程:
1.客户端发送公钥给服务端
2.服务端会把客户端的公钥和发送来的公钥进行对比,如果一致,这时,server会拿公钥加密一串数据给客户端
如果不一致,那么服务端会要求客户端再发送一个公钥做一个记录(从第一步再开始)
3.客户端收到后,用私钥解密,然后发送回server
4.服务端对比数据发现是自己发的,那么认为这个客户端是受信任的,那么连接建立

实验

步骤:
1.生产公钥和私钥
2.把公钥交给服务端
3.客户端对服务端进行连接

[root@localhost ~]# ssh-keygen  在客户机生产公钥和私钥,可以在后面-t指定加密算法,默认是rsa加密
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):    选择私钥存放的位置,默认是/root/.ssh/id_rsa,默认就好
Enter passphrase (empty for no passphrase):      这里设置私钥的密码,设置后在第一次连接的时候需要输入私钥密码,可以不设
Enter same passphrase again:              重新输入以确认私钥密码,没设置可以enter跳过
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:
SHA256:/iGragXnMrbAftmsVLEojvh9sFhvCotLQik7LYNeLlg root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|      .          |
|  . ...o         |
|.+. .+o S        |
|\==E.*.o.         |
|@++*.%  o .      |
|=B==* *  + .     |
|oo++=*... .      |
+----[SHA256]-----+


[root@localhost ~]# ssh-copy-id root@192.168.214.214    将公钥通过服务端的root用户给服务端
/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 keys
root@192.168.214.214's password:           这里会要求输入一次服务端root用户的密码

Number of key(s) added: 1            显示添加了一个key

Now try logging into the machine, with:   "ssh 'root@192.168.214.214'"
and check to make sure that only the key(s) you wanted were added.

设置好后,登录服务端

[root@localhost ~]# ssh root@192.168.214.214    远程登录服务端
Last failed login: Tue May 25 16:21:37 CST 2021 from 192.168.214.100 on ssh:notty
There were 4 failed login attempts since the last successful login.
Last login: Tue May 25 15:45:01 2021 from 192.168.214.100
[root@server ~]#                            可以发现不需要密码就能够登录

scp、sftp、put、get的简单介绍

scp≈cp,不过比cp更安全,cp怎么用,scp就怎么用

 [root@localhost ~]# scp /root/.ssh/id_rsa.pub root@192.168.214.214:/opt    通过scp把公钥放进服务端,scp后跟公钥的路径 再跟用户和ip地址,ip地址后跟:表示存放到的目录,如果不写目录默认放到家目录下
id_rsa.pub                                    100%  408   385.1KB/s   00:00  
[root@localhost ~]# scp /root/.ssh/id_rsa.pub root@192.168.214.214:   :后不写目录的情况
id_rsa.pub                                    100%  408   304.2KB/s   00:00    

sftp是一种交互式的远程登录服务端,与ssh不同的是在sftp中输入的命令都是对服务端进行操作,如果想对客户端进行操作则需要在命令前加上l,不过交互模式有些命令无法使用,需要注意。

[root@localhost ~]# sftp root@192.168.214.214
Connected to 192.168.214.214.
sftp> ls
anaconda-ks.cfg           id_rsa.pub                initial-setup-ks.cfg      
下载                    公共                    图片                    
文档                    桌面                    模板                    
视频                    音乐                    
sftp> lls
anaconda-ks.cfg       root@192.168.214.214  模板  图片	下载  桌面
initial-setup-ks.cfg  公共		    视频  文档	音乐
sftp> 
sftp> 
sftp>quit     退出交互模式的远程登录

put:用于将客户端的文件上传至服务端
get:用于将服务端的文件下载至客户端

sftp> get id_rsa.pub    将服务端文件下载至客户端,要下载到哪个目录先用lcd切过去
Fetching /root/id_rsa.pub to id_rsa.pub
/root/id_rsa.pub                              100%  408   192.0KB/s   00:00    
sftp> lls
anaconda-ks.cfg  initial-setup-ks.cfg  公共  视频  文档  音乐
id_rsa.pub	 root@192.168.214.214  模板  图片  下载  桌面
sftp> 
sftp> put initial-setup-ks.cfg   将客户端的文件上传至服务端,要上传到哪个目录先用cd切过去
Uploading initial-setup-ks.cfg to /root/initial-setup-ks.cfg
initial-setup-ks.cfg                          100% 2121     2.2MB/s   00:00    
sftp> ls
anaconda-ks.cfg           id_rsa.pub                initial-setup-ks.cfg      
下载                    公共                    图片                    
文档                    桌面                    模板                    
视频                    音乐
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值