如何使用SSH登录Linux服务器
首先进入/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
1 什么是SSH
SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。SSH是每一台Linux电脑的标准配置,但是在windows系统中默认是没有安装SSH的,需要安装SSH相关服务端软件,比如FreeSSHD。
2 SSH可以用来做什么
SSH可以用于远程登录主机,登录方式通常有两种:口令登录和公钥登录
一:口令登录:通过在服务端设定的用户名和密码进行登录,每次都登录都需要填写密码
二:公钥登录:通过一对公钥和私钥登录,公钥存放在服务端私钥存放在客户端,在登录时服务端向客户端发生一个随机字符串,然后客户端通过私钥先进行加密然后发生到服务端,在服务端接受和用公钥进行解密,然后匹配是否正确解密来验证登录,注意:存在在服务端的公钥名称和用户名一致,已区分不同用户不同的公钥;这样每次就可以直接用公钥登录省去了密码的繁琐。
SSH可以用户服务端和客户端之间双向文件传输
3 SharpSSH与SSH服务端FreeSSHD
SharpSSH是一个用C#实现的SSH客户端组件,用户可以根据需要修改使用改组件已满足自己的需求,SharpSSH介绍和组件下载网站:http://sharpssh2codeplexcom/,也可以在这里下载。
注意:在官网下载SharpSSH会因为主机为安装Mono而出现MonoSecuritydll的引用错误,只需要下载MonoSecuritydll重新引用即可。
我在Windows7 VS2012的环境下测试官网下载的SharpSSH项目升级成功,解决方案如下:
其中有两个项目:Examples,SharpSSH顾名思义,Examples是使用示例,SharpSSH就是真正的实现项目,设置Examples为启动项,运行效果如下:
可以看到,示例为我们提供了16个功能项,再次我们需要测试远程登录和文件传输,使用第13, 和16项测试即可,同时也会用到第5项生成公钥私钥对;
客户端SharpSSH已经实现了,接下来在Windows系统中就需要安装客户端了,这里选择FreeSSHD作为客户端,官网下载地址:http://wwwfreesshdcom/ctt=download或这里:http://downloadcsdnnet/detail/dangercheng/6804861
下载下来直接下一步下一步安装,安装完成后运行会提示你是否生成Key选择是即可,同时会安装FreeSSHDService服务,选择关闭该服务;
此时可以看到支持telnet和SSH服务,且都关闭,到此步客户端服务端都已经准备就绪,下面就进行我们的登录测试和文件传输测试吧;
4 远程登录执行命令
上面提过,登录有两种方式,口令登录和公钥登录,先介绍口令登录吧;
口令登录:即在服务端freeSSHd上创建一个用户名和密码,使用此密码口令登录
首先在freeSSHd上的Users选项中点击Add弹出添加用户界面,然后Login填写用户名,authorization选择Password stored as SHA1 hash 然后填写密码和重复密码,勾选该用户可用服务,如下图,创建了用户名和密码都是test:
然后我们选择SSH项,将Use new console engine项的勾选去掉已防止中午乱码,如图:
选择确定即可创建成功,然后回到主界面我们打开SSH服务
如上图所示即表示SSH服务已经成功开启;但是有可能会错误:常见原因是地址已使用,这是端口号22已经被使用造成的,关闭该端口的进程即可。
接下来我们运行我们的sharpSSH进行登录测试吧。
我们选择第13项,然后输入远程地址I(由于服务端就在本机所以是127001),然后不选择公钥登录,然后输入密码,连接成功,执行date命令查询当前时间:
现在我们测试公钥登录:
公钥登录需要先生成公钥私钥对,我们选择第5项KeyGen来生成,命名为test(和用户名一致),Sig Type选择dsa, 然后Comment为空弹出窗口输入passphrase我们不输入直接选择ok,这样就在sharpSSH的bin\Debug目录下生成了我们的test的公钥私钥两个文件。如图:
生成了公钥testpub和私钥test两个文件。然后将公钥文件testpub放到freeSSHd指定的公钥文件夹目录:
也就是C:\Program Files\freeSSHd\这个目录下,并去掉后缀pub,然后修改test用户的authorization选择Public Key如图:
接下来再测试:
5 传输文件
首先我们修改服务端文件位置:
这样我们服务端的默认位置就是我们在freeSSHd下面自己添加的sftpFile的目录了,我们在里面放一个testjpg,现在我们要将这个传到我们sharpSSH的目录页就是bin\Debug目录下并改名为testClientjpg:
可以看见传输的速度还是很快的93k0秒完成,有兴趣的可以试试大文件的传输,到此关于SSH的登录和文件传输的测试完毕,当然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重新登陆试试,成功的话不需要输入密码就会直接进入远程服务器。
0条评论