1 ssh简介以及本例的应用场景
① ssh的简介
SSH是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。 SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。
② 本例的应用场景
用户在client(Linux)上通过ssh远程执行server(Windows)上的命令,比如c:\testbat
注:Linux版自带ssh Server且默认启动,具体设置方法请参见google。
2 ssh服务器的安装(Windows)
ssh服务器软件有许多中,我们这里使用的是免费的freeSSHd。
① 首先从官方站点下载软件并安装
② 安装完成后进入配置界面(Server Status),确认SSH server正在运行状态
③ 进入Users界面,设定一个访问的用户账户(比如xut)
这里我们建立一个叫xut的用户,认证有3种方式可以选择。从以后通过ssh运行命令的方便(无需输入密码)考虑,我们选择Public key认证方式。选择Password方式的话,每次访问需要输入密码,此种方式较为繁琐而且安全性不高。然后开放其Shell权限。
④ 进入认证界面,确认Public key认证方式属于激活状态(选择Allowed或Required)
此时ssh服务器端的基本设置已经OK,可进一步进行更加详细的设置(比如访问限定等),此处不再介绍。
注意:服务器端如果有防护墙时应该开发TCP 22号端口最为ssh连接使用。
3 ssh客户端的设置(Linux)
由于我们的客户端采用的是Linux,所以不用安装客户端软件,系统自带的就有。
我们需要在Linux上创建一个共有和私有的密钥对,私有密钥放到客户端(Linux)上,共有密钥放到服务器端(Windows)上。在Linux上通过ssh-keygen命令来创建。
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair
Enter file in which to save the key (/root/ssh/id_rsa): [直接回车]
Enter passphrase (empty for no passphrase): [直接回车]
Enter same passphrase again: [直接回车]
Your identification has been saved in /root/ssh/id_rsa
Your public key has been saved in /root/ssh/id_rsapub
The key fingerprint is:
4d:dd:48:af:76:c2:ba:a8:bc:20:f3:28:1d:6a:28:53
其中,/root/ssh/id_rsa为私有密钥,/root/ssh/id_rsapub为共有的密钥。
此时,需要把共有密钥放到服务器端(Windows)进行保存,以便于服务器端进行安全检查。
我们通过认证界面找到存放共有密钥的地址(Public key folder)。
如上图所示,然后在c:\Program Files\freeSSHd目录下创建以登录用户名为名字的文本文件,此处举例为xut文件。并将/root/ssh/id_rsapub文件中的内容拷贝到c:\Program Files\freeSSHd\xut文件中。
至此,客户端和服务器端的密钥设置已经完成,可以通过如下命令进行远程的命令执行。
ssh xut@17228xxxxx "c:\testbat"
这条命令将执行服务器端的C盘下的testbat文件,并把结果返回,整个 *** 作不需输入密码。
4 ssh客户端的设置(Windows)
由于Windows不附带ssh的客户端和服务器端,我们这里找一个免费的客户端软件PuTTY。
PuttY主页:>
各种客户端的比较:>
在Putty主页,我们下载puttyzip(含除了PuTTYtel以外的所有文件),然后解压会发现一个叫plinkexe的文件,这就是我们的ssh客户端命令行软件。
我们首先要成一个共有和私有的密钥对,使用puttyzip中附带的PUTTYGENexe生成。
启动PUTTYGENexe后可以见到下图界面,点击[Generate]即可生成所需密钥对。
注意:由于是采用随机算法生成,需要不停地在对话框上移动鼠标进度条才会增加,否则将保持不变。
鼠标在这里不停移动
密钥生成完毕后,可以把私有密钥进行保存,为了登录简单起见不对私钥进行加密,提示没有passphrase选择忽略即可。假设我们这里把私钥保存为pri_keyppk。
我们把公钥放在freeSSHd端(ssh服务器端)进行保存,具体保存方法参见ssh客户端的设置(Linux)。
在Windows客户端,执行如下命令进行ssh连接,并不需要输入密码即可通过密钥进行自动认证。
plink -i pri_keyppk xut@17228xxxxx c:\testbat
(此时将执行服务器端的c:\testbat脚本。)
注:第一次连接时将出现“The server's host key is not cached in the registry… ”提示,我们选择确定就可以了,以后就不会再出现了。
你好,默认配置
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重新登陆试试,成功的话不需要输入密码就会直接进入远程服务器。在Linuxe服务器上开启远程和端口。内网的话直接用地址加端口即可连接。
外网需要做端口映射。
1开启ssh(secure shell)服务(我的是linux ubuntu 1010),当然在开启ssh服务之前,需要下载相关得软件,使用下面得命令即可:
sudo apt-get install ssh
然后进入/etc/initd 输入命令:sudo service ssh start 开启ssh服务
使用 netstat -tln 查看ssh服务是否已经打开(ssh 服务默认使用22端口)
若要关闭ssh服务时,使用 : sudo service ssh stop即可关闭ssh 服务
2在客户端(widnows主机)上下载ssh客户端putty,填写linux服务器ip,session name 然后保存,打开,输入用户名,和密码,那么就登录成功了!!!
1、首先打开控制软件xshell5,点击文件菜单。
2、然后在下拉菜单里点击新建选项。
3、在连接中输入服务器IP地址,协议是SSH,端口是22,点击用户身份验证。
4、输入服务器登录帐号和密码,点击确定。
5、然后需要点击连接选项。
6、然后界面就会显示连接成功。
ssh程序分为有客户端程序openssh-client和服务端程序openssh-server。如果需要ssh登录到别的电脑,需要安装openssh-client,该程序Ubuntu是默认安装的。而如果需要从远程连接到本机,则需要安装openssh-server,该程序需要自己安装。在Ubuntu下安装openssh-server非常简单。
安装openssh-server
$ sudo apt-get install openssh-server
查看openssh-server是否启动
$ ps -e | grep ssh
进程ssh-agent是客户端,sshd为服务器端,如果结果中有sshd的进程说明openssh-server已经启动,如果没有则需运行命令启动。
启动、停止和重启openssh-server的命令如下
/etc/initd/ssh start
/etc/initd/ssh stop
/etc/initd/ssh restart
配置openssh-server
openssh-server配置文件位于/etc/ssh/sshd_config,在这里可以配置SSH的服务端口等,例如:默认端口是22,可以自定义为其他端口号,如222,然后需要重启SSH服务。
关闭ssh登录到root用户
开放ssh登录root权限是非常危险的,所以不是特别需要,应该关闭该权限,在配置文件/etc/ssh/sshd_config中找到PermitRootLogin yes一行,将yes改为no然后重启ssh即可。
Ubuntu中配置openssh-server开机自动启动
打开/etc/rclocal文件,在exit 0语句前加入:
/etc/initd/ssh start
关于客户端连接
客户端可以用putty、SecureCRT、SSH Secure Shell Client等SSH 客户端软件,输入您服务器的IP地址,并且输入登录的用户和密码就可以登录了。我常选择的客户端软件是putty。
关于ssh的加密
实际上ssh的使用远不止这些,ssh还有很重要的一部分内容,那就是ssh通过公钥私钥进行加密,例如git就可以采用加密ssh的方式访问。
我现在使用的是小鸟云,6月新近活动认证可获得0元服务器,建议去看看!
外网需要做端口映射。
1开启ssh(secure shell)服务(我的是linux ubuntu 1010),当然在开启ssh服务之前,需要下载相关得软件,使用下面得命令即可:
sudo apt-get install ssh
然后进入/etc/initd 输入命令:sudo service ssh start 开启ssh服务
使用 netstat -tln 查看ssh服务是否已经打开(ssh 服务默认使用22端口)
若要关闭ssh服务时,使用 : sudo service ssh stop即可关闭ssh 服务
2在客户端(widnows主机)上下载ssh客户端putty,填写linux服务器ip,session name 然后保存,打开,输入用户名,和密码,那么就登录成功了!!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)