请教如何用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

MAC 是自带SSH的,可以使用whereis查看是否存在,在终端执行下面的命令:

执行完后会打印存在路径

之后查看现有进程,执行下列命令:

执行完后会打印现有进程,但是你会发现找不到ssh对应的进程
下列为我的终端执行命令后的结果

这时候如果直接使用SSH命令连接本地主机或者远程主机会遇到下列错误:

解决方法:打开系统偏好设置,在共享中,打开远程登录,如下图:

之后使用ssh localhost来测试一下,如果提示输入密码来认证就没问题了。
之后再grep一下进程就可以看到ssh进程在运行了:

可以通过ssh命令连接其他主机,例如:
ssh username@192168100100

也可以通过ssh命令连接其他服务器,例如:ssh -p 端口 用户名@服务器ip地址

使用用户名密码登录
在命令行中输入命令:
之后系统会提示输入密码,输入后即可登录
如果不添加-p选项,则默认是22端口
还可以使用-l选项输入用户名:
使用密钥登录(不使用密码)
首先生成密钥,在任意目录下输入命令:
-P表示密码,-P
''表示空密码
之后系统会提示输入生成的密钥文件的文件名,可以输入任意名称,比如id_rsa,回车
系统会在当前目录下生成id_rsa与id_rsapub两个文件
在根目录下新建ssh文件夹,将生成的密钥文件拷贝过去
-p选项表示如果文件夹已经存在则不再新建。
然后将之前生成的两个文件都拷贝到ssh文件夹中
把公钥文件id_rsapub拷贝到需要登录的服务器上
用scp命令
-P表示要登录服务器的端口好,不加默认为22。
之后系统会提示输入密码,输入即可完成拷贝
登录远程服务器,在用户根目录下新建ssh文件夹(如果不存在),在其中新建authorized_keys文件(如果不存在),把id_rsapub添加到authorized_keys文件中
这是在远程服务器上新建ssh文件夹
将id_rsapub文件添加到authorized_keys文件中(如文件不存在则新建)
注意:要保证ssh与authorized_keys用户自己都有写权限
退出当前远程登录,之后就可以不使用密码远程登录了

小鸟云服务器niaoyun实例创建好之后,您可以使用以下任意一种方式登录服务器:
远程桌面连接(MicrosoftTerminalServicesClient,MSTSC):采用这种方式登录,请确保实例能访问公网。如果在创建实例时没有购买带宽,则不能使用远程桌面连接。
管理终端VNC:无论您在创建实例时是否购买了带宽,只要您本地有网页浏览器,都可以通过管理控制台的管理终端登录实例。
使用远程桌面连接(MSTSC)登录实例
打开开始菜单>远程桌面连接,或在开始菜单>搜索中输入mstsc。也可以使用快捷键Win+R来启动运行窗口,输入mstsc后回车启动远程桌面连接。
在远程桌面连接对话框中,输入实例的公网IP地址。单击显示选项。
输入用户名,如小鸟云默认为niaoyun。单击允许我保存凭据,然后单击连接。这样以后登录就不需要手动输入密码了。

在内网通过域名绑定服务器,外网SSH访问连接时,通过域名的访问,实现访问内网LINUX。 具体的实现过程如下: 明确LINUX服务器内网访问地址端口,确保LINUX服务器正常开启SSH服务,在内网SSH可以正常访问连接。 被访问端的Linux主机上使用nat123动态域名解析Linux版本。 在被访问端的Linux服务器安装nat123客户端,并登录使用它。 登录网页,左侧用户中心,添加域名解析,选择动态域名解析并添加确认。 选择动态域名解析记录,使用二级域名,或自己的域名。鼠标放在输入框有向导提示。如不理解负载均衡,不要勾选多点登录。 新添加动态解析后,等待几分钟生效。解析生效后,动态解析域名与本地公网IP是保持对应的。可以通过ping下域名核实,返回结果IP地址为本地公网IP地址时,表示动态解析生效正常。 路由器端口映射,路由映射SSH访问22端口。 因为公网IP是在路由器上的,外网访问时,需要经过路由,需要在路由器上做端口映射,将内网LINUX服务器访问22端口打通。路由器端口映射位置:转发规则/虚拟服务器/添加允许外网访问端口和协议。我的LINUX服务器SSH服务端口是默认的22,我内网对应LINUX服务器主机的内网IP地址是192168129。 外网访问时,使用动态解析域名。

首先进入/etc目录下,/etc目录存放的是一些配置文件,比如passwd等配置文件,要想使用ssh远程登陆,需要配置/etc/ssh/sshd_config文件里的配置信息,使用vim编辑,在命令行模式下输入 vim /etc/ssh/sshd_config,进入之后,按“i”进入编辑状态,在其文件里找到并修改为:PasswordAuthentication yes , PermitRootLogin yes两行即可,

修改之后,按“esc”退出,并按“:wq”保存并退出,或直接按“:x”直接保存退出,(注意:此处的x为小写x,大写X是将文件内容加密,使用时细心注意),

退出编辑模式之后,回到命令模式,输入 sevice ssh start/stop/restart/status,启动/停止/重启/状态,选择start启动ssh服务。

如果上面开启SSH服务的命令不能用,可以使用命令:sudo service sshd start 试试,检查是否开启SSH服务使用命令:ps -e | grep sshd

此时可以查看ssh状态是否为运行状态,运行状态即可使用ssh远程登陆。

使用“ifconfig”命令查询ip地址

使用ssh登陆时,输入主机(linux的ip地址),账号,密码登陆!

如果需要远程连接SSH,需要把22端口在防火墙上开放,关闭防火墙,或者设置22端口例外  /etc/initd/iptables stop

怎么通过ssh登陆可参看下一篇“通过ssh实现远程登陆服务器!”

大致步骤为:

SSH 服务配置文件位置
/etc/ssh/sshd_config
# 修改配置
PasswordAuthentication yes
PermitRootLogin yes
# 启动SSH 服务
sevice ssh start/stop/status

安装SSH:yum install ssh
启动SSH: service sshd start
设置开机运行: chkconfig sshd on


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10584881.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-09
下一篇2023-05-09

发表评论

登录后才能评论

评论列表(0条)

    保存