2020-11-17 新买了百度云服务器,如何用ssh远程登陆
购买百度云服务器后,百度云会给你发送短信告知登陆用户名,但一般不会通过手机短信将密码发给你,所以首先要进入工作台后,鼠标放在vnc远程后,选择实例设置——>重置密码。
之后一般会需要几分钟重启服务器,显示重置密码中。
按照百度云官方操作步骤是这样的
但是呢,按照以上的操作之后,始终连不上,总是提示“用户秘钥未在远程主机注册”。
根据错误提示,判断问题应该是公钥没在服务器上注册。有两种方法可以尝试:
1、通过管理后台的秘钥对管理——创建秘钥对——使用已有的公钥——将上一步创建的公钥内容粘贴进去,然后在绑定服务器实例即可。
但是通过以上操作之后,仍然连不上。
2、尝试第二种方法,直接将ssh公钥都追加到authorized_keys文件。
先通过用户名和密码登陆服务器,
然后编辑ssh/authorized_keys 文件。
进入后,将前面创建的公钥粘贴进去。
再连接,成功!
小鸟云服务器niaoyun实例创建好之后,您可以使用以下任意一种方式登录服务器:
远程桌面连接(MicrosoftTerminalServicesClient,MSTSC):采用这种方式登录,请确保实例能访问公网。如果在创建实例时没有购买带宽,则不能使用远程桌面连接。
管理终端VNC:无论您在创建实例时是否购买了带宽,只要您本地有网页浏览器,都可以通过管理控制台的管理终端登录实例。
使用远程桌面连接(MSTSC)登录实例
打开开始菜单>远程桌面连接,或在开始菜单>搜索中输入mstsc。也可以使用快捷键Win+R来启动运行窗口,输入mstsc后回车启动远程桌面连接。
在远程桌面连接对话框中,输入实例的公网IP地址。单击显示选项。
输入用户名,如小鸟云默认为niaoyun。单击允许我保存凭据,然后单击连接。这样以后登录就不需要手动输入密码了。
默认配置
Windows下有很多SSH工具。在这里我是用的是Putty。如果安装了Git并配置使用Putty的话,就不需要另外在安装Putty了。使用SSH连接服务器的命令如下:
ssh IP地址
一般来说为了安全性考虑,端口号等一些参数并不会使用默认值。这样的话命令就变成这样:
ssh 用户名@IP地址 -p 端口号
如果连接成功的话会提示你输入远程服务器的密码。全部成功之后SSH就会显示远程服务器的提示符,这时候就说明连接成功了。
密钥登录
每次登录SH都需要输入密码很麻烦,而且可能不太安全。SSH还能使用另外一种登录方式,也就是使用密钥登录。这种登录方式需要客户端生成一堆公钥私钥对,然后将公钥添加到服务器中,这样下次就可以直接登录了。
首先生成SSH密钥,依照提示输入信息即可。默认生成在用户主目录中的ssh文件夹中。带pub的是公钥,接下来需要添加到服务器中。
ssh-keygen
然后将本地公钥添加到服务器中,需要使用另一个命令:
scp -P 端口号 本地文件路径 用户名@远程服务器地址:远程路径
然后登陆服务器,找到复制进去的公钥,将公钥名字改为authorized_keys并添加到对应的ssh文件夹中。然后退出SSH重新登陆试试,成功的话不需要输入密码就会直接进入远程服务器。
阿里云主机ssh 免密码登录
操作系统: CentOS 70 64位
CPU: 1 核
公网IP: 781292345
用户名: root
密码:bugaosuni
我在VMware下安装的Ubuntu 1404本文的主要目的就是在Ubuntu上能够免密码登录云主机。
具体设置步骤
Ubuntu 客户端
在该文件夹下就会产生三个文件夹:id_rsa,id_rsapub,know_hosts。
id_rsa:存储私钥,记得只能自己看哦。别人那到这个文件就完蛋蛋咯。
id_rsapub:存储公钥,用来通信加密使用,有了这个人家才能确定这是你。
scp id_ rsapub root@781292345:/root/ssh/id_ rsapub
Note:云主机上没有ssh/文件时,你要自己建立一个。
云主机端
rm id_rsapub
Ubuntu 客户端
这个时候就可以登录云主机了
ssh root@781292345
scp远程拷贝文件时提示错误:
Warning: Permanently added '1000182' (RSA) to the list of known hosts
Permission denied (publickey)
解决:
登录1000182,将/etc/ssh/sshd_config文件中的PasswordAuthentication no 改为PasswordAuthentication yes
重启sshd服务:/etc/initd/sshd restart
问题解决。
原因:scp是基于ssh的拷贝服务,ssh在没有密钥登录的情况下,禁用了密码登录,故出现如上错误。
服务端SSH 服务配置了禁止root用户登录策略。
处理办法
说明:相关策略可以提高服务器的安全性。请用户基于安全性和易用性权衡后,再确定是否需要修改相关配置。
要解决此问题,请进行如下配置检查和修改:
参数说明:
未配置该参数,或者将参数值配置为 yes (默认情况),都允许 root 用户登录。只有显示的设置为 no 时,才会阻断root 用户登录。
该参数只会影响用户的 SSH 登录,不影响用户通过 管理终端 等其它方式登录系统。
如果需要修改相关策略配置,在继续之前建议进行文件备份。
使用 vi 等编辑器,将参数值设置为 yes,或者整个删除或注释(在最开头添加 # 号)整行配置。比如:# PermitRootLogin yes
使用如下指令重启 SSH 服务:service sshd restart
尝试再次使用 root 用户登录服务器。
出现的问题以及解决方案
当出现Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 警告的时候,恭喜你,你已经离成功很近了。
远程主机这里设为slave2,用户为Hadoop。
本地主机设为slave1
以下都是在远程主机slave2上的配置,使得slave1可以免密码连接到slave2上。如果想免密码互联,原理一样的,在slave1上也这么配置即可!
(1)首先:配置ssh服务器配置文件。
在root 用户下才能配置。
vi /etc/ssh/sshd_config
权限设为no:
如果前面有# 号,将#号去掉,之后将yes修改为no。
修改之后为:
PermitRootLogin no
UsePAM no
PasswordAuthentication no
权限设为yes:
RSAAuthentication yes
PubkeyAuthentication yes
(2)重启sshd服务
systemctl restart sshdservice
systemctl status sshdservice #查看ssh服务的状态
正常情况下应该是Active:active(running)
(3)修改文件夹以及文件的权限。
(4)在slave1上进行测试
ssh slave2
今天处理 ssh连接至 ubuntu 服务器时,提示以下错误:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed
The fingerprint for the RSA key sent by the remote host is
da:f7:3e:ba:f7:00:e6:44:76:f2:58:6e:48:
Please contact your system administrator
Add correct host key in /用户home目录/ssh/known_hosts to get rid of this message
Offending RSA key in /用户home目录/ssh/known_hosts:1
RSA host key for ip地址 has changed and you have requested strict checking
Host key verification failed
经过google,出现这个问题的原因是,第一次使用SSH连接时,会生成一个认证,储存在客户端的known_hosts中。
可使用以下指令查看:
ssh-keygen -l -f ~/ssh/known_hosts
由于服务器重新安装系统了,所以会出现以上错误。
解决办法
ssh-keygen -R 服务器端的ip地址
会出现以下提示:
/用户home目录/ssh/known_hosts updated
Original contents retained as /用户home目录/ssh/known_hostsold
重新连线,出现以下提示:
The authenticity of host '192168310 (192168310)' can't be established
RSA key fingerprint is da:f7:3e:ba:f7:00:e6:44:76:f2:58:6e:48:
Are you sure you want to continue connecting (yes/no)
目前,远程连接服务器的类型有以下几种:
① 文字接口的明文传输: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
xshell软件
linux系统
使用xshell远程连接我旁边的Ubuntu时,root用户登陆,密码正确,但是显示
“ssh服务器拒绝了密码。请再试一次”
原因:ssh服务基于安全考虑,没有给root用户远程连接的权限
解决办法:
登陆要连接的Ubuntu
vim /etc/ssh/sshd_config
找到PermitRootLogin 这一行,将后面的no 改为yes ,如图所示
此时再次利用xshell登陆root账户即可。
如果还是连不上,就要考滤iptables是否开启22号端口
云服务器还要考虑安全组是否开放22号端口。
0条评论