telnet远程终端协议传输的数据以明文方式传输,会被抓包软件抓取到数据 ssh 提供了基于账户密码(口令)和密钥对两种登录验证方式,这两者都是通过密文传输数据的 windows远程登录Linux主机一般使用第三方工具,比如Xshell、secureCRT、putty 首先需要在 Client 上创建一对密钥,并且需要把公钥放在需要访问的 Server 上 当 Client 需要连接 Server 时,Client 端的软件就会向 Server 端发出登录请求,请求使用密钥对中的的公钥 进行安全验证 Server 收到请求之后,会在该用户的家目录下查询公钥文件,拿 Client 发送过来的公钥和自己家目录下的公钥 进行比较 如果两个公钥一致,Server 就用公钥加密“challenge(质疑)”,并把它发送给 Client 软件。Client 收到加 密内容之后,使用本地的私钥进行解密,再把解密结果发送给 Server 端,Server 端验证成功后,允许登录 注意:若第3个步骤对比结果失败,则 Server 端会通知 Client 端此公钥未在本机注册,无法验证登录 之后点击[链接克隆](因为这样节省硬盘空间) 选择[虚拟机设置] 打开克隆机 修改 /etc/udev/rules.d/70-persistent-net.rules文件 注释掉第8行的这个内容 注意你修改的网络必须和你VMware虚拟机设置的网络在同一网段内,否则将无法连通互联网。甚至都不能和你的物理机连通 三台Linux的主机名分别为,dayuanshuai,IDYS_01,IDYS_02 临时修改主机名的方法: 永久修改的方式,重启即是生效 使用Xshell自带的密钥对生成向导生成密钥对 选择[工具] -> [新建用户密钥生成向导] 注意:ssh的配置文件中,并不是注释掉的就是不生效的,有些是默认生效,需要修改时一定要取消注释再修改 简单来说就是服务器端设置自己监听的ip地址,远程想通过ssh服务连接该主机,就必须是连接的该IP才行 注意:如果要使用scp命令进行复制的话,客户端和服务器端都应该安装上openssh-clients 安装包,不然会报错。
文章目录
这里是一段防爬虫文本,请读者忽略。 本文原创首发于ImapBox,作者IDYS 博客首页:https://blog.csdn.net/weixin_41633902/ 本文链接:https://blog.csdn.net/weixin_41633902/article/details/105784761
– 写在开头的话
ssh的基本概念
ssh的登录验证模式
账户密码验证
格式
密钥对验证
ssh(secure shell)的服务搭建
Linux服务器的建立(VMware克隆形式)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:ec:96:c2", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
(你里面的参数可能和我不一样,但是开头都是以subsystem开头的),然后再将第11行的NAME="eth1"
改为NAME="eth0"
,最后修改结果如下 1 # This file was automatically generated by the /lib/udev/write_net_rules 2 # program, run by the persistent-net-generator.rules rules file. 3 # 4 # You can modify it, as long as you keep each rule on a single 5 # line, and change only the value of the NAME= key. 6 7 # PCI device 0x8086:0x100f (e1000) 8 # SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:ec:96:c2", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" 9 10 # PCI device 0x8086:0x100f (e1000) 11 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:32:e0:eb", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
/etc/sysconfig/network-scripts/ifcfg-eth0
的内容。将UUID注释掉,将硬件地址HWADDR注释掉,ONBOOT(开机启动网卡选项)改为yes,剩下如果你想把网络改为静态方式的话。做这个修改BOOTPROTO=static
[root@IDYS_02 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet # UUID=f2b1fb29-c49e-419c-bea2-5b1887463266 # 启动开机自启动网络 ONBOOT=yes NM_CONTROLLED=yes # 静态方式 BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" # HWADDR=00:0C:21:EC:36:C2 PEERDNS=yes PEERROUTES=yes #网段必须在虚拟机设置的网段内,网关也必须是和你虚拟机设置的网关相同 IPADDR=192.168.200.137 NETMASK=255.255.255.0 GATEWAY=192.168.200.2 DNS1=114.114.114.114 DNS2=8.8.8.8
# 重启命令 shutdown -r now # -r 代表reboot的意思
ssh(secure shell)服务的搭建
安全防护的关闭
# 如: hostname IDYS_01
/etc/sysconfig/network
文件,修改如下NETWORKING=yes HOSTNAME=IDYS_01 #此处将主机名修改为你要想修改的主机名即可
[root@IDYS_01 ~]# service iptables status iptables: Firewall is not running.
# 可以看大SELinux处于开启状态 [root@IDYS_01 ~]# getenforce Enforcing
# 关闭防火墙服务 [root@IDYS_01 ~]# service iptables stop # 关闭SELinux [root@IDYS_01 ~]# setenforce 0
# 永久关闭防火墙 [root@IDYS_01 ~]# chkconfig iptables off # 查看防火墙处于各个模式的开启状态 [root@IDYS_01 ~]# chkconfig --list iptables iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
/etc/selinux/config
文件,将第七行的SELINUX=enforcing
改为SELINUX=disabled
sed -i '7s/enforcing/disabled/' /etc/selinux/config
Linux上用户名密码登录ssh服务器端
查看是否安装openssh安装包
# 查看安装的openssh安装包,可以看到没有安装ssh客户端,只有服务器端 [root@IDYS_01 selinux]# rpm -qa | grep openssh openssh-5.3p1-123.el6_9.x86_64 openssh-server-5.3p1-123.el6_9.x86_64
[root@IDYS_02 ~]# yum list | grep openssh openssh.x86_64 5.3p1-124.el6_10 @updates openssh-server.x86_64 5.3p1-124.el6_10 @updates openssh-askpass.x86_64 5.3p1-124.el6_10 updates openssh-clients.x86_64 5.3p1-124.el6_10 updates openssh-ldap.x86_64 5.3p1-124.el6_10 updates
[root@IDYS_02 ~]# yum -y install openssh-clients
# 此时可以看到ssh客户端安装成功 [root@IDYS_02 ~]# rpm -qa | grep openssh openssh-server-5.3p1-124.el6_10.x86_64 openssh-5.3p1-124.el6_10.x86_64 openssh-clients-5.3p1-124.el6_10.x86_64
Linux上用户名密码登录ssh服务器端
[root@dayuanshuai ~]# ssh root@192.168.200.136 The authenticity of host '192.168.200.136 (192.168.200.136)' can't be established. # 接收服务器端的公钥 RSA key fingerprint is 21:09:71:ce:3c:a0:19:8e:84:f9:c9:03:8f:f2:74:b9. # 询问是否确定想要连接? 输入 yes即可 Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.200.136' (RSA) to the list of known hosts. root@192.168.200.136's password: Last login: Tue Apr 28 23:00:52 2020 from 192.168.200.1 # 登录成功
Linux 主机之间的密钥对登录验证
ssh-keygen -t rsa -b 2048
[root@IDYS_01 ~]# ssh-keygen -t rsa -b 2048 Generating public/private rsa key pair. # 询问将密钥对文件放在什么地方,默认放在家目录的 .ssh/目录下,此处直接敲击回车 Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. # 询问对密钥文件的加密密码是,敲击回车,代表不设置私钥文件的加密密码 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: cb:24:8f:31:b1:b6:b8:10:5f:d9:a2:01:39:49:d3:aa root@IDYS_01 The key's randomart image is: +--[ RSA 2048]----+ |o+. | |.o.. | |o .. | |.. + | |+ = = S | |E+ o o O . | |. o o . + | | . o . + | | o.. | +-----------------+
# 将公钥传送到服务器端,实现免密登录 [root@IDYS_01 ~]# ssh-copy-id root@192.168.200.137 The authenticity of host '192.168.200.137 (192.168.200.137)' can't be established. RSA key fingerprint is 24:09:71:ce:3c:a0:19:4e:84:f9:c9:03:8f:f2:74:b9. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.200.137' (RSA) to the list of known hosts. root@192.168.200.137's password: Now try logging into the machine, with "ssh 'root@192.168.200.137'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. # 查看客户端公钥 [root@IDYS_01 .ssh]# cat ~/.ssh/id_rsa.pub ssh-rsa ************************************************************************************************************************************************************************************************************************************Yv0w== root@IDYS_01 # 查看服务器端存储的验证密钥 [root@IDYS_02 .ssh]# cat ~/.ssh/authorized_keys ssh-rsa **************************************************************************************************************************************************************************************************************************************************************************************************************************Yv0w== root@IDYS_01
# 因为客户端的id_rsa.pub和服务器端的authorized_keys一样,所以客户端能实现免密登录服务器端,下面为免密登录成功的过程 [root@IDYS_01 .ssh]# ssh root@192.168.200.137 Last login: Tue Apr 28 23:59:51 2020 from 192.168.200.136
Windows使用密钥对登录Linux
~/.ssh/
目录下,创建authorized_keys文件,然后编辑文件将公钥复制进去,操作如下,最后设置权限为600[root@dayuanshuai .ssh]# touch authorized_keys [root@dayuanshuai .ssh]# vim authorized_keys ********************************************************************************************************************************************************************************************************************************************************== rsa 2048-042820 [root@dayuanshuai .ssh]# chmod 600 authorized_keys
ssh(secure shell)服务的配置文件说明
禁止使用密码登录
禁止使用 root 远程登录
修改默认端口、限制 ssh 监听 IP
修改默认端口
# 如果端口号变了 xshell登录的命令可为 (此选项为ssh目录端监听的端口号) ssh root@192.168.200.135 54321
[root@dayuanshuai .ssh]# netstat -antp
限制ssh监听IP:
# 修改配置文件 [root@dayuanshuai .ssh]# vim /etc/ssh/sshd_config ListenAddress 192.168.200.20 # 设置虚拟网卡为192.168.200.20,以后ssh客户端只能连接192.168.200.20 这个IP才能连接ssh服务器端 [root@dayuanshuai .ssh]# ifconfig eth0:0 192.168.200.20
ssh服务相关命令
scp:安全的远程文件复制命令
[root@IDYS_01 ~]# scp /tmp/test.txt root@192.168.200.137:/tmp/ bash: scp: command not found lost connection
# 连接上服务器端 [root@IDYS_01 ~]# ssh root@192.168.200.137 Last login: Wed Apr 29 03:40:09 2020 from 192.168.200.136 # 在服务器端安装上opensssh-client这个安装包 [root@IDYS_02 ~]# yum -y install openssh-clients # 重启ssh服务 [root@IDYS_02 ~]# service sshd restart # 退出到客户端 [root@IDYS_02 ~]# exit logout # 再次使用scp复制 [root@IDYS_01 ~]# scp /tmp/test.txt root@192.168.200.137:/tmp/ # 删除文件 [root@IDYS_01 tmp]# rm test.txt # 再从远程服务器端复制到本地 [root@IDYS_01 tmp]# scp root@192.168.200.137:/tmp/test.txt /tmp
# 在服务器端修改连接端口,连接端口改为2222 [root@IDYS_02 ~]# vi /etc/ssh/sshd_config Port 2222 # 在客户端再次连接时需要指定端口2222,才能连接上ssh服务 [root@IDYS_01 tmp]# ssh -p 2222 192.168.200.137 # 这时再要通过scp复制文件时,需要通过大P指定ssh端口,才能实现复制 [root@IDYS_01 tmp]# scp -P 2222 root@192.168.200.137:/tmp/test.txt /tmp test.txt 100% 0 0.0KB/s 00:00
sftp:安全的文件传输协议
# 连接上服务器端 [root@IDYS_01 tmp]# sftp root@192.168.200.137 Connecting to 192.168.200.137... # 查看 sftp> help Available commands: bye Quit sftp cd path Change remote directory to 'path' ************** #省略 #使用本地shell执行whoami,在whoami前面加一个感叹号!即可执行本地客户端shell的whoami sftp> !whoami root # 可以看到命令前面加!执行的是本地客户端的shell sftp> !ifconfig eth0 Link encap:Ethernet HWaddr ********* inet addr:192.168.200.136 Bcast:192.168.200.255 Mask:255.255.255.0 # 查看版本号 sftp> version SFTP protocol version 3 # 将远程目录复制到本地目录上来 (远端文件) (本地目录) sftp> get /tmp/test.txt /tmp # 将本地目录上传至远端目录 (本地文件) (远端目录) sftp> put /tmp/IDYS01.txt /tmp/ # 远程服务器端修改ssh的监听端口 [root@IDYS_02 ~]# vim /etc/ssh/sshd_config Port 2222 # 重启服务 [root@IDYS_02 ~]# service sshd restart # 退出到本地 [root@IDYS_02 ~]# exit logout # sftp指定端口,重新连接 [root@IDYS_01 tmp]# sftp -oPort=2222 root@192.168.200.137 Connecting to 192.168.200.137...
三种命令指定端口的方式
– 写在最后的话:
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算