SSH详解-1ssh基础知识
SSH详解-2ssh基本用法
SSH详解-3密钥登陆
SSH详解-4多个ssh公钥
OpenSSH 的客户端是二进制程序 ssh,Linux 系统一般都自带 ssh。新版的win10开启ssh服务,但不是很好用,可以使用一些好用的软件 Xshell 、 Putty 等
安装OpenSSH 以后,可以使用 -V 参数输出版本号,查看一下是否安装成功。
ubuntu
windows
ssh最常用的用途就是登录服务器,当然这需要服务器再运行着sshd。
ssh 登录服务器的命令如下,例如连接局域网内一台ip地址为192168198的主机
上面命令中,root是用户名,@后面的是主机名,它可以是域名,也可以是 IP 地址或局域网内部的主机名。
用户名也可以使用ssh的 -l 参数指定,这样的话,用户名和主机名就不用写在一起了。
ssh 默认连接服务器的22端口, -p 参数可以指定其他端口。
上面命令连接服务器192168198的8888端口,这里没有指定用户名。将使用客户端的当前用户名,作为远程服务器的登录用户名。
刚刚应该注意到这段话了,这段话是什么意思呢?
上面这段话的意思是192168198这个服务器的指纹是陌生的,是否要继续连接(输入 yes or no )。
接下来,输入 yes 后ssh会将当前服务器的指纹存储在本机 ~/ssh/known_hosts 文件中。以后再连接的时候,就不会再出现警告了。
也就是说,ssh通过判断当前服务器公钥的指纹是否存在于~/ssh/known_hosts文件中,来判断是否为陌生主机
然后,客户端就会跟服务器建立连接。
接着,ssh 要求用户输入所要登录账户的密码,用户输入密码验证成功后就可以使用远程shell了。
ssh(1) - OpenBSD manual pages
SSH连接Linux需要使用SSH客户端(常用有putty,Xshell,此处以Xshell为例)
1安装好Xshell打开软件。
2点击file-new,输入自定义的名称,和要访问的linux的地址。
3再输入用户名和密码。
4若出现以下提示,则表示链接成功。
5以后若要再链接已经设置过的地址,点击file-open,会出现所有链接地址,双击即可。
Mac 上玩 Linux(一)安装Ubuntu
Mac 上玩 Linux(二)Ubuntu 支持 root 登录
Mac 上玩 Linux(三)使用 SSH 连接 Ubuntu
Mac 上玩 Linux(四)安装 VMware Tools
首先 Mac 不像 Windows 需要类似 XShell 这样的客户端进行 SSH 连接,直接使用终端即可。
我这里是使用的 Ubuntu 1804 的模拟器。
这种情况,很大的可能是由于服务器默认禁止 root 用户进行 ssh 远程登录。
到这里就基本确定了就是,服务器禁止 root 用户进行 ssh 远程登录了。
不过这里有问题,正常情况下 PermitRootLogin 应该也是**高亮的。
我尝试了多次,还是不能高亮,不管了先保存。
依然权限被拒绝,说明配置 PermitRootLogin yes 没有生效。
大多数情况下,完成上一步就可以完成登录了,是不需要该步骤的。
连接 root 用户
出现错误的原因是,重装了 openssh-server ,服务器的公钥发生了变化导致的错误。
SSH 服务是通过公钥和私钥来进行连接的,它会把每个曾经访问过计算机或服务器的公钥,记录在 known_hosts 中,当下次访问曾经访问过的计算机或服务器时,SSH 就会核对公钥,如果和上次记录的不同,OpenSSH 会发出警告。
根据提示进行修改
目前,远程连接服务器的类型有以下几种:
① 文字接口的明文传输:Telnet、RSH为主,很少用到。
② 文字接口的加密传输:以SSH为主,已经取代了上面的明文传输方式。
③ 图形接口:XDMCP、VNC、XRDP等较为常见。
这篇文章只为实战,不为普及概念性知识。所以我只讲解在工作中最常用到的技术SSH。关于SFTP技术和VNC技术,请查阅我的其他博客。
好,先来看一下SSH的相关技术:
SSH,英文全程是Secure Shell Protocol(安全的壳程序协议)。SSH是现在公司基本上都在使用的一种文字接口的加密传输技术,采用的是非对称秘钥系统。
对于SSH的原理,你们可以参考我的另外一篇博客,我把链接贴在这里:
SSH原理
⑴来吧,我们先来查看一下sshd这个服务(这就是SSH的远程连接必须开启的服务,属于系统自带),注意,一般这个sshd服务是默认自动开启的。
如果想要重启怎么办呢?
好吧,请看:
上面两种重启动的方法都是可以滴!
⑵直接远程登录主机的命令:
ssh -f -o 参数 -p 非标准端口 账号@IP 命令
其中:
-f : 需要配合后面的命令,不登录远程主机直接发送一个命令过去
-o 参数 : 主要的参数有:
ConnectTimeout=秒数 : 连接等待的秒数,减少等待的时间。
StrictHostKeyChecking=yes|no|ask:默认是ask,若要让public key主动加入到known_hosts, 则可以设置为no即可。
-p : 如果sshd服务启动在非标准端口下,需使用此参数。
举例说明吧:
① 直接登录到对方主机:
如果是以root用户登录到对方主机,有如下两种登录方式:
注意:如果是普通用户登录,必须使用第二种加@的方式。
② 实现登录对方主机,执行命令后就离开的方式。例如:从远程主机上执行cat /etc/passwd命令把文件显示在本地主机上。
③ 不登录对方主机,让对方主机自己运行该命令,你立刻回到本地机器继续工作:
④ 删除known_hosts后,重新使用root连接到本机,会自动加上公钥记录
你一定会说,大骗子玩漏了吧?怎么没有自动加上公钥记录呢?怎么记录信息提示手机选择yes/no了呢?别着急,我们的“-o”参数要横空出世了!有了-o,再也不用选择yes|no了,而是自动被选择了yes而加入到~/ssh/known_hosts中。
看到了,这次没有提示让选择yes|no吧!
⑤ SSHD服务器详细配置
Centos默认的SSHD服务其实已经算是很安全了,这里注意Centos 5X之后默认SSH协议版本都是V2也就是上图的Protocol 2,默认端口是 22,注意这些还不够,如果是真正工作中的服务器,建议取消root的登录权限:
把红框中的yes改为no就可以取消root用户的登录权限了。
下面来介绍一个很有用的技术,制作不用密码可立即登录的SSH用户。有人会说制作这个是用来干嘛的?你想一想,如果想要利用crontab来定时执行备份或者拷贝的任务,因为每次SSH连接都要输入对方主机密码,这是在crontab中无法执行的,那么怎么办?只有不需要输入密码才可以 *** 作。
方法如下:
① 客户端建立两把钥匙
我们在客户端创建一个用户user1 *** 作,利用user1来远程服务器端的user2用户。下面我们以1921681118为客户端,以1921681121为服务端。
首先在客户端建立两把秘钥
命令如下:
需要注意:
⑴ ~/ssh目录的权限必须是700
⑵ id_rsa(私钥文件)的权限必须是-rw——-,且属主必须是当前登录用户,否则在未来秘钥比对的过程中,可能会被判断为危险而无法成功的以公私钥成对的机制来实现连接。
以上两点一般情况下默认都是正确的。
② 将公钥文件数据上传至服务器端
③ 将公钥文件放置到服务器端的正确目录中,并保证文件名正确
一定要把公钥文件内容附加到authorized_keys这个文件内, *** 作用户为服务器端用户
注意:切记authorized_keys这个文件的权限必须是644
当在远程Linux主机上设置好ssh服务后,就可以用ssh连接了。如果客户端是linux系统,可以用ssh命令(这个是ssh客户端)连接,格式:
ssh 用户名@IP地址
例子:ssh root@19216813
它会提示是否信任这个主机并保存密钥,输入yes并回车,然后输入登录用户的密码就连上了。
如果客户端是Windows系统,一般是用putty或者xshell来连接,他俩都是免费的软件,putty还是绿色软件,下载下来直接运行就可以用,不需要安装,xshell可以用软件管家之类的软件安装, *** 作方面都是图形界面挺好 *** 作的。
基于安全的考虑,如果用户连接到SSH Server后闲置一段时间,SSH Server会在超过特定时间后自动终止SSH连接。
若希望保持SSH长时间连接,可以做以下修改:
1、编辑ssh配置文件(注意不是“ssh_config")
# vim /etc/ssh/sshd_config
加入以下参数保存:
2、重启sshd生效:
systemctl restart sshd
实践环境:阿里云 CentOS 83
applicationContextxml文件里,
<beans xmlns=">
以上就是关于SSH详解-2.ssh基本用法全部的内容,包括:SSH详解-2.ssh基本用法、SSH怎样连接Linux、Mac 上玩 Linux(三)使用 SSH 连接 Ubuntu等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)