请教如何用ssh连接远程服务器

请教如何用ssh连接远程服务器,第1张

目前,远程连接服务器的类型有以下几种: 

① 文字接口的明文传输: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

这个就非常多啦,下面我以Windows系统为例,简单介绍5个非常不错的SSH远程连接软件(也就是终端软件),感兴趣的朋友可以尝试一下:

01

MobaXterm

这是一个非常全能的终端软件,在个人桌面端有着非常高的使用率和欢迎度,完全免费,不仅支持SSH、Telnet、Rsh等远程连接,还支持VNC、RDP、Xdmcp等远程控制,内建多标签、多终端分屏,对于日常控制云服务器来说,非常简单实用:

02

XShell

这也是一个非常不错的终端软件,在个人桌面端也有着较高的使用率,家庭学校版可以免费使用,但商业版需要付费购买,支持SSH、Telnet、Rlogin、STFP等远程连接,上传下载文件来说,也非常容易,对于云服务控制来说,也是一个非常不错的工具:

03

FinalShell

这是一个非常不错的国产终端软件,完美支持3大操作平台,个人使用完全免费,支持SSH远程连接和Windows远程桌面,可以实时查看服务器内存、CPU、网络性能,免费内网穿透,对于管理云服务器来说,也是一个不错的工具:

04

SecureCRT

这也是Windows平台下一个非常不错的终端软件,但个人使用需付费购买,支持SSH、Telnet、Rlogin等远程连接,可以加密登录和会话数据,多标签、多终端效果非常不错,界面简约、简洁、质朴,对于日常控制云服务器来说,也是一个不错的选择:

05

Putty

这是Windows平台下一个非常小巧、灵活的终端软件,完全免费、开源,支持SSH、Telnet、Rlogin等远程连接,但功能相比较前面几个终端软件,比较单一,不支持多标签、多终端,上传下载文件来说,也不是很容易,如果你追求简单、轻便的感觉,可以使用一下这个软件,也非常不错:

目前就分享这5个不错的终端软件吧,对于日常使用来说,完全够用了,选择适合自己的一款就行,当然,你也可以使用Windows系统自带的PowerShell,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

如果能够ping通,只能表示路径可以达到,

你或许可以采用telnet {hostname} 22端口,看看是否可以出现一些字符,显示正常连接,

1 如果这个不可以,

需要查询一下服务器是否允许访问22端口,

服务端打开和允许访问

防火墙段(如果有的话)

网络正常映射或者开放到可以允许访问的地址上(对于远程访问)

2 如果可以的话,

ssh软件问题

更换软件

系统问题检查 ,更换另外一台计算机登陆

可以

你的系统有问题

不可以,

问题很严重,无法解决了不过你可以让机房重装试试看

前提:要有你需要连接的服务器的ip,端口号,服务器上的账户和密码

1、首先打开终端,然后输入sudo su - 回车进入根目录

2、然后输入:ssh -p 端口号 服务器用户名@ip (例如ssh -p 22 userkunyu@119293763)回车,到这会让你输入yes或者no来确认是否连接,输入yes回车

3、然后输入在服务器上的用户密码回车

4、到此进入的是你在服务器上的账户的目录,即为连接成功

最后输入sudo su -进入服务器的根目录,进行操作

连接设置别名

使用vi命令编辑一下~/ssh/config这个文件(如果目录下没有这个文件,可以新建一个),接着按下面格式添加内容:

另外,如果想查看当前有哪些配置了别名的服务器,可以使用命令cat ~/ssh/config | grep “Host”来查看

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 请教如何用ssh连接远程服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情