如何使用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
本文是笔者查阅网上资料做的总结,关于SSH原理,什么是对称加密和非对称加密,本文不过多介绍。这里介绍一下SHH的工作过程、配制方法,可能出现的问题及解决方法。
说明:本文中涉及的例子,SSH客户端为:本地主机A,SSH服务器为:服务器B
SSH协议采用C-S(客户端-服务器端)架构进行双方的身份验证以及数据的加密。
服务器端组件监听指定的端口,负责安全连接的建立、对连接方的身份认证、以及为通过身份认证的用户建立正确的环境。
客户端负责发起最初的TCP握手、安全连接的建立、验证服务器的身份与之前记录中的一致、并将自己的验证信息提供给服务器。
一个SSH会话的建立过程分为两个阶段。第一阶段,双方沟通并同意建立一个加密连接通道以供后续信息传输用。第二阶段,对请求接入的用户进行身份验证以确定服务器端是否要给该用户开放访问权限。
当客户端发起TCP连接时,服务器端返回信息说明自己支持的协议版本,如果客户端上支持的协议与之匹配,则连接继续。服务器会提供自己的公共主机密钥(public host key)以让客户端确认自己访问的是正确的机器。
然后,双方采用一种Diffie-Hellman算法共同为该会话建立密钥。每一方的一部分私有数据,加上来自对方的一部分公共数据,通过这种算法计算,能够得出完全相同的密钥用于本次会话。
整个会话的通讯内容都使用该密钥进行加密。这个阶段使用的公钥/私钥对与用户验证身份用的SSH密钥是完全无关的。
经典Diffie-Hellman算法的计算步骤如下:
这个共享密钥的加密方式被称为二进制数据包协议(binary packet protocol)。该过程能够让双方平等的参与密钥生成的过程,而不是由单方掌握。这种共享密钥生成的过程是安全的,双方没有交换过任何未经加密的信息。
生成的密钥是对称式密钥,一方用于加密信息的密钥等同于另一方用于解密信息的密钥,而任何第三方由于不持有该密钥,是无法解密双方传递的内容的。
会话加密通道建立后,SSH开始进入用户认证阶段。
下一步,服务器验证用户身份以决定是否准许其访问。验证有不同的方式,选择的验证方式取决于服务器的支持。
最简单的验证是密码验证:服务器要求客户端输入密码,客户端输入的密码经过上述的通道加密传输给服务器。
虽然密码是加密过的,然而该方法仍然不被推荐,因为用户经常为了省事而使用过于简单的密码,而这类密码很容易就能够被自动化脚本破解。
最流行的验证方式是SSH密钥对,这也是当前最推荐的方式。SSH密钥对是非对称密钥,私钥和公钥分别用于不同的功能。
公钥用于加密,而私钥用于解密。公钥可以随意上传、共享,因为公钥的流通并不会危及到私钥的保密性。
SSH密钥对的验证过程起始于上一部分加密通道建立之后,其具体执行步骤如下:
简单来说,服务器端用公钥加密信息,客户端用私钥解密信息以证明自己持有私钥。该过程同时使用了对称加密和非对称加密,两种方式各有自己的功用。
命令如下:
用户名:为要登录的服务器B中已存在的用户账户名
IP地址:为服务器B的IP地址
-p 端口号:用来指定端口号,默认为22
第一次登录时,会提示如下提示:
大概意思是说,你正在访问的主机不能验证它的真实性,它的RSA key(当前访问主机的公钥)指纹是怎样的,你确定要继续连接吗?
输入yes继续,会提示,已永久把当前访问主机的RSA key添加到了已知主机文件(用户目录下,ssh 文件夹中的knwon_hosts文件)中。之后再次 SSH 登录就不再有该提示了。
接着,输入登录账户的密码即可。
SSH 密码登录,需要服务器开启密码验证权限,编辑服务器SSH配置命令如下:
在 sshd_config 文件中,Protocol 2 下面 #PasswordAuthentication yes,将前面的#号去掉,保存退出。
公钥登录,即免密码登录。避免的每次登录都要输入的麻烦,也防止了中间人攻击。是SSH远程登录最常用的登录方式。
提示输入密钥对名称,直接回车,使用默认名称即可;
提示输入密码(使用私钥时,要输入密码),直接回车,不使用密码即可。
首先,登录服务器B,在进行下面的操作。
找到 #PubkeyAuthentication yes,删除 #号,保存退出。
重启 ssh 服务
也可指定验证私钥:
本地主机A,生成密钥对后:
sudo vim /etc/selinux/config
配置思路
采用如下的思路配置用户通过
STelnet
登录系统:
1
配置
SSH
服务器管理网口的
IP
地址。
2
在
SSH
服务器端生成本地密钥对,实现在服务器端和客户端进行安全地数据交互。
3
配置
SSH
服务器端的
VTY
用户界面。
4
配置
SSH
用户,包括认证方式,用户名和密码。
5
在
SSH
服务器端使能
STelnet
服务器功能以及配置用户的服务类型。
数据准备
为完成此配置例,需准备如下的数据:
l SSH
服务器管理网口的
IP
地址。
l SSH
用户的认证方式为
password
,用户名为“
client001
”
,密码为“
huawei
”
。
l client001
的用户级别为
3
。
l SSH
服务器端的
IP
地址为
10137217223
。
操作步骤
步骤
1
配置登录地址
<HUAWEI> system-view
[~HUAWEI] sysname SSH Server
[~HUAWEI] commit
[~SSH Server] interface gigabitethernet 0/0/0
[~SSH Server-GigabitEthernet0/0/0] undo shutdown
[~SSH Server-GigabitEthernet0/0/0] ip address 10137217225 25525500
[~SSH Server-GigabitEthernet0/0/0] commit
[~SSH Server-GigabitEthernet0/0/0] quit
步骤
2
在服务器端生成本地密钥对
[~SSH Server] rsa local-key-pair create
The key name will be: SSH Server_Host
The range of public key size is (512 ~ 2048)
NOTE: If the key modulus is greater than 512,
It will take a few minutes
Input the bits in the modulus [default = 512] :
输入
1000,
注意该值需要大于
768
,
否则用
ssh
登录时会出现下面的错误,
但是指导书中没写
明白。
步骤
3
在服务器端配置
VTY
用户界面
[~SSH Server] user-interface vty 0 4
[~SSH Server-ui-vty0-4] authentication-mode aaa
[~SSH Server-ui-vty0-4] protocol inbound ssh
[~SSH Server-ui-vty0-4] commit
VRP
[~SSH Server-ui-vty0-4] quit
说明
若配置登录协议为
SSH
,则
VRP
设备将自动禁止
Telnet
功能。
步骤
4
在服务器端配置
SSH
用户的用户名和密码
[~SSH Server] aaa
[~SSH Server-aaa] local-user client001 password cipher huawei
[~SSH Server-aaa] local-user client001 level 3
[~SSH Server-aaa] local-user client001 service-type ssh
[~SSH Server-aaa] commit
[~SSH Server-aaa] quit
步骤
5
使能
STelent
功能,并配置用户的服务类型为
STelnet
[~SSH Server] stelnet server enable
[~SSH Server] ssh authentication-type default password
[~SSH Server] commit
SSH是什么?Linux如何修改SSH端口号?
1
SSH为SecureShell
由IETF的网络工作小组(NetworkWorkingGroup)所制定;
SSH是建立在应用层和传输层基础上的一种安全协议。
SSH传输数据是加密的,可以有效防止传输过程被截取数据保障安全。
SSH的数据是经过压缩的,所以可以加快传输的速度
1
首先查看一下当前linux是否已经安装SSH软件包,使用rpm-qa|grepssh
2确认ssh服务已经开启
3找到SSh服务配置文件路径一般都是在/etc/ssh这个目录下面sshd_config这个文件
编辑修改SSH端口号
1使用VIvim编辑器,打开sshd_config这个文件,搜索找到port字段
2将光标定位到port22这行yy然后键盘P复制一行,insert插入编辑22端口为2222
3设置好之后,wq保存退出,表示已经增加了一个2222端口号啦
4设置好之后,当然需要重启SSH服务了。
5如果您有设置防火墙,请修改增加防火墙规则,或者直接关闭防火墙也行
注意事项
SSH端口默认是22,如果要修改直接编辑22端口注意前面的“#”要去掉,然后保存重启
linux怎么通过ssh访问另一台服务器?
举例说明: 如用root帐号连接一个IP为1921681102的机器,输入:“ssh1921681102-lroot”, 回车后输入root帐号的密码再回车确认即可。 如果该服务器的ssh端口不是默认的22端口,是自定义的一个如1234,则可在命令后面加参数-p, 如:“ssh1921681102-lroot-p1234”
linux可以PING通,但SSH连接不上,如何解决?
原因:被防火墙挡掉,ssh服务配置文件中的参数是否拒绝了连接等等。解决方法:
一、开启SSH。
以root用户登录Linux,打开终端,运行:/etc/initd/sshdrestrat。
二、关闭防火墙。
1在终端运行setup。
2,选择firewall回车。
3按tab键切换到disablede项,然后按空格键选择,然后再按tab键切换到ok,按空格件选择。
4按tab键切换到quit,按空格件选择。然后用客户端ssh登录Linux。
三、关闭防火墙的另一种方式。/etc/initd/iptablesstop。
四、如果ping不同,如果是在Vmware中安装的linux,需要在虚拟机设置中,将NetworkAdapter设置成Bridged(桥接),因为默认是“NAT”。
两台Linux服务器,ssh代理上网配置?
A服务器配置两块网卡,其中一块网卡配置接入外网,一块网卡配置接入内网,而B服务器就接入在与A在同一网络的内网上,在A服务器上通过squid配置透明代理就可以,同时做iptables数据转发处理,B服务器的网关需要配置为服务器A的内网口IP地址,这些都可以通过命令行完成。
Linux客户端如何加载ssh私钥?
点击确定加载成试样,一定要点击确定加载,把他设计成这样,点击确定加载或者下载软件出来,下载之后,然后加载成把它改成这个东西就行了
介绍如何在windows主机上通过ssh远程登录ubuntu操作系统,这里以虚拟机的操作系统为例讲解。方法/步骤
准备工作:首先需要在windows系统中安装虚拟机,并在虚拟机中安装好linux操作系统,这里安装的是vmware player虚拟机和ubuntu版本的操作系统。关于该部分的安装在作者的其他经验中有详细介绍。
在windows主机中安装上ssh软件,ssh是Secure Shell 的缩写,主要提供远程登录协议。windows下的安装很简单,只要下载好安装程序,双击即可安装。安装完成后会生成两个软件图标。
在ubuntu系统中安装ssh,通常ubuntu中默认是安装的。可以通过命令进行查看:dpkg -l | grep ssh
如果ubuntu系统中没有安装ssh程序,也可以使用下列命令进行安装:
sudo apt-get install openssh-client
sudo apt-get install openssh-server
安装好后ssh服务的启动和停止命令如下:
启动ssh服务:
#sudo /etc/initd/ssh start
停止ssh服务:
#sudo /etc/initd/ssh stop
重启ssh服务:
#sudo /etc/initd/ssh restart
通过虚拟机启动ubuntu系统,打开shell终端,通过ifconfig命令,查看该系统的ip地址,ssh的端口号一般为22
打开windows系统中的ssh客户端软件,选择快速连接,输入ubuntu系统的ip地址和账户名,并根据提示输入密码,即可通过ssh登录到ubuntu系统中去,并执行各种命令操作。
默认配置
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 用户名@IP 的方式登录
创建config文件,注意:不要后缀
可同时配置多个
执行指令 ssh 自定义的host
0条评论