大家好,今天给各位分享ssh服务器拒绝了密码的一些知识,其中也会对xshell连不上linux怎么办进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
一、SSH服务器拒绝了密码***xshell连不上linux怎么办
要想在windows下远程连接linux的ssh客户端,就需要借助像xshell这样的终端模拟器软件,具体步骤如下:
步骤一
打开xshell软件。双击桌面上的xshell软件快捷图标,就可以打开软件,打开的软件主界面如下图所示。
图1:xshell软件主界面
步骤二
执行新建命令。打开xshell软件后找到左上角第一个“文件”菜单并单击,弹出来一个下拉框,选择“新建”命令(或者按下快捷键“alt+n”)。
步骤三
“新建”之后就会出现下面这样一个界面,“名称”根据自己的需求填写,“协议”就是默认的ssh,“主机”是这一步最关键的,一定要填写正确,否则无法登录,端口也是默认的22,其他不用填,填写完成之后先不要点确定,看下一步。
图3:新建服务器会话
在使用xshell中的过程中,如果发现电脑的小键盘不能用了,可参考教程:xshell中数字小键盘不能使用怎么办?
步骤四
找到连接选项栏中的“用户身份验证”,之后会让你填写用户名和密码,其中“方法”默认“password”,“用户名”填写你的ftp用户名,“密码”填写你的ftp密码,填写完成确定。
图4:用户身份验证
步骤五
登录刚才保存的账号,单击左上角的“文件”菜单,在其下拉选项选择“打开”命令,弹出会话对话框,左下角有一个选项“启动时显示此对话框”,这个选项的意思是:每次打开xshell都跳出这个对话框,根据需求勾选,然后找到你想登录的服务器,“连接”即可。
图5:连接服务器
连接之后出现如下界面中的[root@******]样式的,就证明连接成功了。
图6:服务器连接成功
根据以上步骤,就可以连接linux。在使用的过程中一定要保证数据的安全,离开电脑或者不需要使用的时候,将其退出,更安全的方法是如果你服务器的“主机”“用户名”“密码”这三项记得很清楚的话,尽量不要保存账号密码,每次打开重新输入来进行连接。
二、如何建立linux ssh信任的方法与常见问题
在Linux服务器之间建立信任关系,是很多线上服务系统的基础*工作,这样能便于程序在多台服务器之间自动传输数据,或者方便用户不输入密码就可以在不同的主机间完成登录或者各种操作。
网上关于建立Linux信任关系(ssh trust)的中文文章有一些,但是写得都不太详细,这里汇总了方方面面的资料,把多机信任关系建立方法说说清楚(文/陈运文)
一建立信任关系的基本操作
基本场景是想从一台Server服务器登录另一台,或者将Server服务器的数据不需密码验证拷贝至Client服务器,以下我们简称Server服务器为S(待发送的数据文件在这台服务器上),Client服务为C,信任关系的最简单操作方法如下:
1在S服务器上,进入当前用户根目录下的隐藏目录.ssh,命令如下:
cd~/.ssh
(注:目录名前的点好”.”表示该文件夹是一个特殊的隐藏文件夹,ls命令下默认是看不到的,通过 ls–a命令观察到)
2生成S服务器的私钥和公钥:
ssh-keygen-t rsa
(注:rsa是一种加密算法的名称,此处也可以使用dsa,关于rsa和dsa算法的介绍可见本文后半章节)
ssh-keygen生成密钥用于信任关系生成
-此时会显示Generating public/private key pair.并提示生成的公钥私钥文件的存放路径和文件名,默认是放在/home/username/.ssh/id_rsa这样的文件里的,通常不用改,回车就可以
然后Enter passphrase(empty for no passphrase):通常回车,默认不需要口令
Enter same passphrase again:也回车
然后会显式密钥fingerprint生成好的提示,并给出一个RSA加密协议的方框图形。此时在.ssh目录下ls,就可以看到生成好的私钥文件id_rsa和公钥文件id_rsa.pub了
以下是各种补充说明:
注1:如果此时提示 id_rsaalready exists,Overwrite(y/n)则说明之前已经有人建好了密钥,此时选择n忽略本次操作就行,可以用之前生成好的文件;当然选y覆盖一下也无妨
注2:公钥用于加密,它是向所有人公开的(pub是公开的单词public的缩写);私钥用于解密,只有密文的接收者持有。
3在Server服务器上加载私钥文件
仍然在.ssh目录下,执行命令:
ssh-add id_rsa
系统如果提示:Identity added: id_rsa(id_rsa)就表明加载成功了
下面有几个异常情况处理:
–如果系统提示:could not open a connection to your authentication agent
则需要执行一下命令:
ssh-agent bash
然后再执行上述的ssh-add id_rsa命令
–如果系统提示id_rsa: No such file or directory
这是系统无法找到私钥文件id_rsa,需要看看当前路径是不是不在.ssh目录,或者私钥文件改了名字,例如如果建立的时候改成 aa_rsa,则这边命令中也需要相应改一下
-如果系统提示 mand not found,那肯定是你命令敲错字符了J
-提示Agent admitted failure to sign using the key,私钥没有加载成功,重试ssh-add
-注意id_rsa/id_rsa.pub文件不要删除,存放在.ssh目录下
4把公钥拷贝至Client服务器上
很简单,例如 scp id_rsa.pub :~
5 ssh登录到Client服务器上,然后在Client服务器上,把公钥的内容追加到authorized_keys文件末尾(这个文件也在隐藏文件夹.ssh下,没有的话可以建立,没有关系)
cat id_rsa.pub>>~/.ssh/authorized_keys
以下是各种补充说明,遇到问题时可以参考:
注1:这里不推荐用文件覆盖的方式,有些教程scp id_rsa.pub到Client服务器的authorized_keys文件,会导致之前建的其他信任关系的数据被破坏,追加到末尾是更稳妥的方式;
注2: cat完以后,Client服务器上刚才拷贝过来的id_rsa.pub文件就不需要了,可以删除或移动到其它地方)
注3:ssh-keygen命令通过-b参数可以指定生成的密钥文件的长度,如果不指定则默认为1024,如果ssh-keygen–b 4096(最长4096),则加密程度提高,但是生成和验证时间会增加。对一般的应用来说,默认长度已经足够胜任了。如果是rsa加密方式,那么最短长度为768 byte
注4:authorized_keys文件的权限问题。如果按上述步骤建立关系后,仍然要验证密码,并且没有其他报错,那么需要检查一下authorized_keys文件的权限,需要作下修改: chmod g-w authorized_keys
OK,现在试试在Server端拷贝一个文件到Client服务器,应该无需交互就传过去了。
但是此时从Client传数据到Server服务器,仍然是需要密码验证的。如果需要两台服务器间能互传数据,则反过来按上述步骤操作一下就可以了
二删除服务器间信任关系的方法
如果想取消两台服务器之间的信任关系,删除公钥或私钥是没有用的,需要在Client服务器上,打开~/.ssh/ authorized_keys文件,找到对应的服务器的公钥字段并删除
每个段落的开头是ssh-rsa字样,段尾是Server服务器的帐号和ip(如下图红框),需要细心的找一下后删除整段
密钥文件内容和删除Linux服务器间信任关系的方法
三各种可能遇到的情况和处理方法
–提示 port 22: Connection refused
可能的原因:没有正确安装最新的openssh-server,安装方法如下
sudo apt-get install openssh-server
不支持apt安装的,可以手工:
wget ftp.ssh./pub/ssh/ssh-3.2.9.1.tar.gz
–关于目录和文件的权限设置
.ssh目录的权限必须是700,同时本机的私钥的权限必须设置成600:
chmod 600 id_rsa
否则ssh服务器会拒绝登录
四关于RSA和DSA加密算法
在ssh-keygen命令中,-t参数后指定的是加密算法,可以选择rsa或者dsa
RSA取名自算法的三位提出者Ron Rivest, Adi Shamir, and Leonard Adleman的姓名首字母,作为一种非对称加密算法,RSA的安全*基于及其困难的大整数分解(两个素数的乘积的还原问题)。关于RSA算法原理的文章很多,感兴趣的朋友可以找来读一读。
DSA= Digital Signature Algorithm,基于有限域离散对数难题,是Schnorr和ElGamal签名算法的变种,一般用于数字签名和认证,被美国标准局(NIST)采纳为数字签名标准DSS(Digital Signature Standard),based on discrete logarithms putation.
DES= Digital Encryption Standard. Obsolete standard.
RSA算法好在网络容易实现密钥管理,便进行数字签名,算法复杂,加/解速度慢,采用非对称加密。在实际用于信任关系建立中,这两种方法的差异很微小,可以挑选其一使用。
五关于SSH协议的介绍
SSH全称Secure SHell,顾名思义就是非常安全的shell的意思,SSH协议是IETF(Inter Engineering Task Force)的Network Working Group所制定的一种协议。SSH的主要目的是用来取代传统的tel和R系列命令(rlogin,rsh,rexec等)远程登陆和远程执行命令的工具,实现对远程登陆和远程执行命令加密。防止由于网络监听而出现的密码泄漏,对系统构成威胁。
ssh协议目前有SSH1和SSH2,SSH2协议兼容SSH1。目前实现SSH1和SSH2协议的主要软件有OpenSSH和SSH Communications Security Corporation公司的SSH Communications软件。前者是OpenBSD组织开发的一款免费的SSH软件,后者是商业软件,因此在linux、FreeBSD、OpenBSD、NetBSD等免费类UNIX系统种,通畅都使用OpenSSH作为SSH协议的实现软件。因此,本文重点介绍一下OpenSSH的使用。需要注意的是OpenSSH和SSH Communications的登陆公钥/私钥的格式是不同的,如果想用SSH Communications产生的私钥/公钥对来登入到使用OpenSSH的linux系统需要对公钥/私钥进行格式转换。
第一次登陆后,ssh就会把登陆的ssh指纹存放在用户home目录的.ssh目录的know_hosts文件中,如果远程系统重装过系统,ssh指纹已经改变,你需要把.ssh目录下的know_hosts中的相应指纹删除,再登陆回答yes,方可登陆。请注意.ssh目录是开头是”.”的隐藏目录,需要ls–a参数才能看到。而且这个目录的权限必须是700,并且用户的home目录也不能给其他用户写权限,否则ssh服务器会拒绝登陆。如果发生不能登陆的问题,请察看服务器上的日志文件/var/log/secure。通常能很快找到不能登陆的原因。
六关于ssh_config和sshd_config文件配置的说明
/etc/ssh/ssh_config:
Host*
选项“Host”只对能够匹配后面字串的计算机有效。“*”表示所有的计算机。
ForwardAgent no
“ForwardAgent”设置连接是否经过验证代理(如果存在)转发给远程计算机。
ForwardX11 no
“ForwardX11”设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAY set)。
RhostsAuthentication no
“RhostsAuthentication”设置是否使用基于rhosts的安全验证。
RhostsRSAAuthentication no
“RhostsRSAAuthentication”设置是否使用用RSA算法的基于rhosts的安全验证。
RSAAuthentication yes
“RSAAuthentication”设置是否使用RSA算法进行安全验证。
PasswordAuthentication yes
“PasswordAuthentication”设置是否使用口令验证。
FallBackToRsh no
“FallBackToRsh”设置如果用ssh连接出现错误是否自动使用rsh。
UseRsh no
“UseRsh”设置是否在这台计算机上使用“rlogin/rsh”。
BatchMode no
“BatchMode”如果设为“yes”,passphrase/password(交互式输入口令)的提示将被禁止。当不能交互式输入口令的时候,这个选项对脚本文件和批处理任务十分有用。
CheckHostIP yes
“CheckHostIP”设置ssh是否查看连接到服务器的主机的IP以防止DNS*。建议设置为“yes”。
StrictHostKeyChecking no
“StrictHostKeyChecking”如果设置成“yes”,ssh就不会自动把计算机的密匙加入“$HOME/.ssh/known_hosts”文件,并且一旦计算机的密匙发生了变化,就拒绝连接。
IdentityFile~/.ssh/identity
“IdentityFile”设置从哪个文件读取用户的RSA安全验证标识。
Port 22
“Port”设置连接到远程主机的端口。
Cipher blowfish
“Cipher”设置加密用的密码。
EscapeChar~
“EscapeChar”设置escape字符。
/etc/ssh/sshd_config:
Port 22
“Port”设置sshd监听的端口号。
ListenAddress 192.168.1.1
“ListenAddress”设置sshd服务器绑定的IP。
HostKey/etc/ssh/ssh_host_key
“HostKey”设置包含计算机私人密匙的文件。
ServerKeyBits 1024
“ServerKeyBits”定义服务器密匙的位数。
LoginGraceTime 600
“LoginGraceTime”设置如果用户不能成功登录,在切断连接之前服务器需要等待的时间(以秒为单位)。
KeyRegenerationInterval 3600
“KeyRegenerationInterval”设置在多少秒之后自动重新生成服务器的密匙(如果使用密匙)。重新生成密匙是为了防止用盗用的密匙解密被截获的信息。
PermitRootLogin no
“PermitRootLogin”设置root能不能用ssh登录。这个选项一定不要设成“yes”。
IgnoreRhosts yes
“IgnoreRhosts”设置验证的时候是否使用“rhosts”和“shosts”文件。
IgnoreUserKnownHosts yes
“IgnoreUserKnownHosts”设置ssh daemon是否在进行RhostsRSAAuthentication安全验证的时候忽略用户的“$HOME/.ssh/known_hosts”
StrictModes yes
“StrictModes”设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。
X11Forwarding no
“X11Forwarding”设置是否允许X11转发。
PrintMotd yes
“PrintMotd”设置sshd是否在用户登录的时候显示“/etc/motd”中的信息。
SyslogFacility AUTH
“SyslogFacility”设置在记录来自sshd的消息的时候,是否给出“facility code”。
LogLevel INFO
“LogLevel”设置记录sshd日志消息的层次。INFO是一个好的选择。查看sshd的man帮助页,已获取更多的信息。
RhostsAuthentication no
“RhostsAuthentication”设置只用rhosts或“/etc/hosts.equiv”进行安全验证是否已经足够了。
RhostsRSAAuthentication no
“RhostsRSA”设置是否允许用rhosts或“/etc/hosts.equiv”加上RSA进行安全验证。
RSAAuthentication yes
“RSAAuthentication”设置是否允许只有RSA安全验证。
PasswordAuthentication yes
“PasswordAuthentication”设置是否允许口令验证。
PermitEmptyPasswords no
“PermitEmptyPasswords”设置是否允许用口令为空的帐号登录。
AllowUsers admin
“AllowUsers”的后面可以跟着任意的数量的用户名的匹配串(patterns)或user@host这样的匹配串,这些字符串用空格隔开。主机名可以是DNS名或IP。
三、用Xshell连接云服务器时拒绝密码怎么办。
用Xshell root连接时显示ssh服务器拒绝了密码,应该是应该是sshd的设置不允许root用户用密码远程登录
修改/etc/ssh/sshd_config文件,注意,安装了openssh才会有这个文件,如果文件不存在请检查是否安装了openssh。
vim/etc/ssh/sshd_config
找到
# Authentication:
LoginGraceTime 120
PermitRootLogin prohibit-password
StrictModes yes
改成
# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
然后输入命令
/etc/init.d/ssh restart
重启ssh服务即可。
看了上面的介绍,相信你已经知道怎么操作了,更多技巧可以访问Xshell中文官网进行学习。
四、linux服务器ssh远程连接不了linux服务器ssh
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为192.168.1.102的机器,输入:“ssh192.168.1.102-lroot”,回车后输入root帐号的密码再回车确认即可。如果该服务器的ssh端口不是默认的22端口,是自定义的一个如1234,则可在命令后面加参数-p,如:“ssh192.168.1.102-lroot-p1234”
linux可以PING通,但SSH连接不上,如何解决?
原因:被防火墙挡掉,ssh服务配置文件中的参数是否拒绝了连接等等。解决方法:
一、开启SSH。
以root用户登录Linux,打开终端,运行:/etc/init.d/sshdrestrat。
二、关闭防火墙。
1.在终端运行setup。
2,.选择firewall回车。
3.按tab键切换到disablede项,然后按空格键选择,然后再按tab键切换到ok,按空格件选择。
4.按tab键切换到quit,按空格件选择。然后用客户端ssh登录Linux。
三、关闭防火墙的另一种方式。/etc/init.d/iptablesstop。
四、如果ping不同,如果是在Vmware中安装的linux,需要在虚拟机设置中,将NetworkAdapter设置成Bridged(桥接),因为默认是“NAT”。
两台Linux服务器,ssh代理上网配置?
A服务器配置两块网卡,其中一块网卡配置接入外网,一块网卡配置接入内网,而B服务器就接入在与A在同一网络的内网上,在A服务器上通过squid配置透明代理就可以,同时做iptables数据转发处理,B服务器的网关需要配置为服务器A的内网口IP,这些都可以通过命令行完成。
Linux客户端如何加载ssh私钥?
确定加载成试样,一定要确定加载,把他设计成这样,确定加载或者软件出来,之后,然后加载成把它改成这个东西就行了
五、与centos服务器较劲--SSH服务器拒绝了密码,请再试一次
用主机去连接虚拟机报了一下错误:
首先确定密码没有问题.
其次发现我第一次连接可以连,第二天要连接连接不上去.
解决方法:
第一,我用ip可能冲突的方法,更改了dns服务器,重启了服务器,但是ip没有变,还是没有解决问题
sshd的设置不允许root用户用密码远程登录修改 vim/etc/ssh/sshd_config修改:
1、将PermitRootLogin no改成PermitRootLogin yes
2、service sshd restart