如何使用SSH登录远程服务器
默认配置
Windows下有很多SSH工具。在这里我是用的是Putty。如果安装了Git并配置使用Putty的话,就不需要另外在安装Putty了。使用SSH连接服务器的命令如下:
ssh IP地址1
一般来说为了安全性考虑,端口号等一些参数并不会使用默认值。这样的话命令就变成这样:
ssh 用户名@IP地址 -p 端口号1
如果连接成功的话会提示你输入远程服务器的密码。全部成功之后SSH就会显示远程服务器的提示符,这时候就说明连接成功了。
密钥登录
每次登录SH都需要输入密码很麻烦,而且可能不太安全。SSH还能使用另外一种登录方式,也就是使用密钥登录。这种登录方式需要客户端生成一堆公钥私钥对,然后将公钥添加到服务器中,这样下次就可以直接登录了。
首先生成SSH密钥,依照提示输入信息即可。默认生成在用户主目录中的ssh文件夹中。带pub的是公钥,接下来需要添加到服务器中。
ssh-keygen1
然后将本地公钥添加到服务器中,需要使用另一个命令:
scp -P 端口号 本地文件路径 用户名@远程服务器地址:远程路径1
然后登陆服务器,找到复制进去的公钥,将公钥名字改为authorized_keys并添加到对应的ssh文件夹中。然后退出SSH重新登陆试试,成功的话不需要输入密码就会直接进入远程服务器。
SSH是目前较可靠的安全协议,专为远程登录会话和其他网络服务提供安全服务。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。
SSH为Secure Shell的缩写,由IETF的网络小组(Network Working Group)所制定;SSH为建立在应用层基础上的安全协议。
SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他相关平台,都可运行SSH。
验证方式:
从客户端来看,SSH提供两种级别的安全验证。
第一种级别(基于口令的安全验证):
只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
第二种级别(基于密匙的安全验证):
需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。
服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。
如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。
购买百度云服务器后,百度云会给你发送短信告知登陆用户名,但一般不会通过手机短信将密码发给你,所以首先要进入工作台后,鼠标放在vnc远程后,选择实例设置——>重置密码。
之后一般会需要几分钟重启服务器,显示重置密码中。
按照百度云官方操作步骤是这样的
但是呢,按照以上的操作之后,始终连不上,总是提示“用户秘钥未在远程主机注册”。
根据错误提示,判断问题应该是公钥没在服务器上注册。有两种方法可以尝试:
1、通过管理后台的秘钥对管理——创建秘钥对——使用已有的公钥——将上一步创建的公钥内容粘贴进去,然后在绑定服务器实例即可。
但是通过以上操作之后,仍然连不上。
2、尝试第二种方法,直接将ssh公钥都追加到authorized_keys文件。
先通过用户名和密码登陆服务器,
然后编辑ssh/authorized_keys 文件。
进入后,将前面创建的公钥粘贴进去。
再连接,成功!
Windows下连接Linux的ssh工具有哪些
作为一个Windows操作系统用户,如果想要连接Linux服务器来进行文件之间的传送,那么需要一个Secure Shell软件(简称SSH的)。实际上,SSH是一个网络协议,允许通过网络连接到Linux和Unix服务器。SSH使用公钥加密来认证远程的计算机。通常有多种途径使用SSH,自动连接或是使用密码认证登录。
为大家搜集整理了几种可以连接Linux服务器的工具:
putty
Putty是最有名的SSH和telnet客户端,由Simon Tatham为Windows平台开发。Putty是一款开源软件,提供可用的源代码并有一批志愿者进行开发和支持。
Putty易于安装和使用,通常大部分的配置选项不需要修改。用户只需要输入少量基本的参数,就可以开始很简单地建立连接会话。
2Bitvise SSH Client
Bitvise SSH是一款支持SSH和SFTP的Windows客户端。由Bitvise开发和提供专业支持。这款软件工具性能突出,易于安装、便于使用。Bitvise SSH客户端拥有功能丰富的图形界面,通过自动重连功能的内置代理进行动态端口转发。
据了解,Bitvise SSH客户端对个人用户使用是免费的,同时对于在内部的个人商业使用同样免费。
3MobaXterm
MobaXterm是远程计算的终极工具箱。在 单独一个Windows应用里,MobaXterm为程序员、网站管理员、IT管理员及其它用户提供了远程操作一揽子功能。
另外,MobaXterm提供了所有重要的远程网络工具(如SSH、X11、RDP、VNC、FTP、MOSH等),以及Windows 桌面上的Unix命令(bash、ls、cat、sed、grep、awk、rsync等),这些均是由一个开箱即用的单一的便携可执行文件提供,并对个人使用免费。
4DameWare SSH
DameWare SSH是最好的免费SSH客户端。该免费工具是一个终端模拟器,可以从一个易用的控制台建立多个telnet和SSH连接。
将常用的会话保存在 Windows 文件系统中
使用多套保存的证书来轻松登录不同的设备
使用telnet、SSH1和SSH2协议连接计算机和设备
5SmarTTY
SmarTTY是一款免费的多标签SSH客户端,支持使用SCP命令随时复制文件和目录。
SSH服务器每个连接支持最多10个子会话SmarTTY在做得最好:没有多个窗口,不需要重新登录,仅打开一个新的标签页就可以。
6Cygwin
Cygwin 是一款GNU和开源工具的集合,提供类似一个Windows平台下Linux的功能。
Cygwin包括一个称为模拟库的Unix系统:cygwindll,集成大量GNU和其它免费软件。在安装包中,有高质量的编译器和其他软件开发工具、一个X11服务器、一套完整的X11开发套件、GNU emacs编辑器、Tex和LaTeX、openSSH(客户端和服务器),此外还包括在Windows下需要编译和使用PhysioToolkit软件的所有。
通过以上工具介绍,哪一款SSH工具值得用户尝试,可以根据需求和喜好来选择。如果有另外的SSH工具列举,可以进一步留言补充。
为了vps的安全,我开启了vps的ssh 秘钥登陆设置,通过goole搜索资料,操作成功。以下为操作记录。这里假设以root身份,vps的ip为19216801
第一步:产生秘钥即keys
基本上vps都是ssh密码登陆,首先是产生秘钥,分为公钥和私钥(public key和private key),公钥是放到vps上的,私钥放到自己这里,用于自己远程登录用的,产生秘钥方法有多种
第一种最简单,即通过vps自身产生秘钥
代码如下:
#ssh-keygen -t rsa //这里同是产生公钥和私钥
以下为输入命令后产生的输出:
代码如下:
Generating public/private rsa key pair
Enter file in which to save the key (/root/ssh/id_rsa): //这里表示秘钥存放地点,直接回车
Created directory '/root/ssh' //默认创建/root/ssh以保存秘钥
Enter passphrase (empty for no passphrase): //输入密钥密码,可以直接回车
Enter same passphrase again: //重复密钥密码,可以直接回车
Your identification has been saved in /root/ssh/id_rsa //提示公钥和私钥已经存放在/root /ssh/目录下
Your public key has been saved in /root/ssh/id_rsapub
#cd /root/ssh/
# ls
id_rsapub id_rsa //可以看到两个秘钥,将这两个保存好,将私钥拷贝到本地
#mv id_rsapub authorized_keys //将公钥改名为authorized_keys
#chmod 600 /root/ssh/authorized_keys //修改秘钥的权限,600表示属主有rw权限
当然如果本地自己是用linux则生成的秘钥,要将公钥拷贝到vps上,并修改名字和权限
#scp id_rsapub root@192168101:/root/ssh
#mv id_rsapub authorized_keys //这里是改名字,是在/root/ssh目录下操作
第二种方法
用xshell产生秘钥。这里强烈推荐xshell+xftp,十分好用,可以同是管理多个vps,支持多个shell窗口
第二步:用秘钥登陆
因为我们弄好后要测试ssh秘钥登陆,看是否设置成功,如果没成功还能密码登陆,所以修改后一定要测试下,对于vps提供商提供了console的,倒是 可以随意整,毕竟还有console可以用,倘若没有,建议先测试,我就是忘了添加另外一个管理员账户,而自己又禁止了root远程登登陆,导致所有客户 端都登陆不上,还好我有console,修改sshd_config配置,允许root远程登录,才搞定了,以下相当于登陆测试。
首先可以用winscp将公钥拷贝到远程的linux服务器上即vps,记得名字要改成authorized_keys
自己用私钥和vps上的公钥配对,配对成功就登陆了。
必须修改/etc/ssh/sshd_config 文件,将RSAAuthentication 和 PubkeyAuthentication 后面的值都改成yes ,保存
代码如下:
#/etc/initd/sshd restart //再重启sshd服务,我的是centos
用秘钥登陆也有很多种,看你喜欢用什么客户端了,
第一种,是用putty登陆,用putty登陆有点要注意的是要转换秘钥,大家可以参考军哥教程。特别要注意问题就是,putty官网的puttygen转换后的秘钥有问题,登陆时候会出现“Server refused our key”错误。
解决的办法是用winscp官网下载的winscp安装程序自带的puttygen来转换秘钥,就可以正常登陆了。
我的转载的putty,winscp教程,适合新手
第二种,用xshell登陆。我是用xshell,大家可以参考军哥教程
第三种,用linux登陆vps
代码如下:
#chmod 600 id_rsa //将本地的私钥改成rw权限
#ssh root@19216801 /root/id_rsa //id_rsa为私钥,根据自己的私钥路径写
三种登陆过程可能都会提示你填写秘钥密码,填上就可 以登录成功了。
测试ssh秘钥登陆成功后,就可以设置一些更安全的配置,如
代码如下:
PasswordAuthentication no //表示禁止密码口令登陆
permitrootlogin no //表示禁止root远程登录
使用SSH的优点:
1)利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题,也能够防止DNS欺骗和IP欺骗。
2)使用SSH传输的数据是经过压缩的,所以可以加快传输的速度 。
但并不是说SSH就是绝对安全的,因为它本身提供两种级别的验证方法:
第一种级别(基于口令的安全验证):只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人攻击”这种方式的攻击。
第二种级别(基于密钥的安全验证):你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公钥,然后把它和你发送过来的公钥进行比较。如果两个密钥一致,服务器就用公钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私钥在本地解密再把它发送给服务器完成登录。与第一种级别相比,第二种级别不仅加密所有传输的数据,也不需要在网络上传送口令,因此安全性更高,可以有效防止中间人攻击。
1在客户端(本地)生成密钥对
密钥锁码在使用私钥时必须输入,这样就可以保护私钥不被盗用。当然,也可以留空,实现无密码登录,这里密钥锁码设置为空。完成上述步骤后,在 root 用户的家目录中生成了一个 ssh 的隐藏目录,内含两个密钥文件,其中id_rsa 为私钥,id_rsapub 为公钥。
首先进入/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
http://baikebaiducom/view/16184htm
什么是SSH
SSH的英文全称是Secure
Shell
Protocol,安全外壳协议。
通过使用SSH,你可以把所有传输的数据进行加密,这样”中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的”通道”。SSH客户端与服务器端通讯时,用户名及口令均进行了加密,有效防止了对口令的窃听。最初SSH是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免费的,可以预计将来会有越来越多的人使用它而不是SSH。SSH是由客户端和服务端的软件组成的。SSH安装容易、使用简单,而且比较常见,一般的Unix系统、Linux系统、FreeBSD系统都附带有支持SSH的应用程序包。
0条评论