xshell远程登录linux,putty和xshell哪个好用
测试服务器是centos 7,开发者说上午可以连接,下午不能连接。 测试者在这台机器上安装了jenkins,询问后得知。 以wget方式默认安装。 那么,我大致知道了是什么情况。 预期在安装jenkins时,某些目录的所有者权限发生了变化。
ping ip
如果在window电脑上ping IP无法正常工作,多半是服务器网络连接问题或网卡设置问题
在window电脑上使用telnet ip 22
如果说不通,请在centos中使用命令
netstat -antulp | grep ssh
TCP 00.0.0.0:220.0.0.0: * listen
TCP 6033603360336033603360223360336033603360336033603360336033600 * listen
如果没有上述显示,则表示尚未开始监听22个端口
确保sshd服务已打开,然后输入ps -e | grep sshd
# systemctllist-unit-files|grep ssh
启动sshd。 ssh使用22端口监听
启动命令
系统重新开始sshd
systemctl restart sshd.service
通常无法启动。 由于存在错误,ssh突然断开连接
查看sshd状态:系统状态sshd
一般是这样的:
[ root @ bogon~] # systemctlstatusshd
sshd.service-opensshserverdaemon
加载:加载(/usr/lib/systemd/system/sshd.service; 已启用vendor preset :已启用)
active:active(running ) since五2018-06-22 18:40:43 CST; 6天ago
DOCS:man:sshd(8)。
man:sshd_config(5) )。
主PID :8632 (sshd ) )。
内存: 6.6m
cgroup :/system.slice/sshd.service
(8632 /usr/skkdjqm/sshd -D
6月29日1:45:00 bogonsshd [ 24187 ] : acceptedpasswordforrootfrom 192.168.1.17 port 60180 ssh 2
6月29日14:18336006 bogonsshd [ 28789 ] : acceptedpasswordforrootfrom 192.168.1.160 port 59785 ssh 2
hint : somelineswereellipsized,use -l to show in full。
如果不正常,看ssh的状态几乎都是错误的。 以下是几个错误情况。
存在某些目录或文件无法加载的错误。 更改chmod 700目录路径将更改以下目录文件的权限
chmod 600 ~/.ssh/authorized_keys
指示couldnotloadhostkey :/etc/ssh/ssh _ host _ RSA _ key执行以下命令:
root @ Bt :/etc/ssh # ssh-keygen-trsa-b 2048-f/etc/ssh/ssh _ host _ rsakeygeneratingpublic/privatersak 只需直接回车entersamepassphraseagain 3360 youridentificationhasbeeen
yourpublickeyhasbeensavedin/etc/ssh/ssh _ host _ RSA _ key.pub。
The key fingerprint is:
3b : a 4: b 8: df : a 9:153360 d 1:62: df :4133605033605336059:4 a 3:96 root @ Bt
The key's randomart image is:
--[ RSA 2048]----
| .***|
-----------------
ssh相关的目录有三个。 可能不仅仅是这三个。 确保这些目录的权限是正确的
[root@bogon ~]# cd /etc/ssh
[root@bogon ssh
]# ll
总用量 276
-rwx------. 1 root root 242153 11月 20 2015 moduli
-rwx------. 1 root root 2208 11月 20 2015 ssh_config
-rwx------. 1 root root 4358 6月 22 18:40 sshd_config
-rwx------. 1 root ssh_keys 227 3月 26 12:15 ssh_host_ecdsa_key
-rwx------. 1 root root 162 3月 26 12:15 ssh_host_ecdsa_key.pub
-rwx------. 1 root ssh_keys 387 3月 26 12:15 ssh_host_ed25519_key
-rwx------. 1 root root 82 3月 26 12:15 ssh_host_ed25519_key.pub
-rwx------. 1 root ssh_keys 1675 3月 26 12:15 ssh_host_rsa_key
-rwx------. 1 root root 382 3月 26 12:15 ssh_host_rsa_key.pub
检查systemctl的日志
less /dqdhmgsjx/log/messages
Dec 25 10:09:45 localhost sshd: /dqdhmgsjx/empty/sshd must be owned by root and not group or world-writable.
Dec 25 10:09:45 localhost systemd: sshd.service: main process exited, code=exited, status=255/n/a
Dec 25 10:09:45 localhost systemd: Unit sshd.service entered failed state.
Dec 25 10:09:45 localhost systemd: sshd.service failed.
我看到了以下信息,知道为什么了,说明这个/dqdhmgsjx/empty/sshd 的文件权限被人改成了所有人可写的状态或者文件所有者被人改成了非root
ls -l /dqdhmgsjx/empty
发现确实权限是777, 所以修改文件夹权限744,然后启动sshd
chmod -R 744 /dqdhmgsjx/empty/sshd
systemctl start sshd.service
cd /usr/skkdjqm
设置文件夹~/.ssh的访问权限:
$ cd ~
$ chmod 700 .ssh
$ chmod 600 .ssh/*
$ ls -la .ssh
total 16
drwx------. 2 root root 58 May 15 00:23 .
dr-xr-x---. 8 root root 4096 May 15 00:26 ..
-rw-------. 1 root root 403 May 15 00:22 authorized_keys
-rw-------. 1 root root 1766 May 15 00:21 id_rsa
-rw-------. 1 root root 403 May 15 00:21 id_rsa.pub
/etc/ssh/目录下的sshd服务配置文件sshd_config
如果是突然连接不上ssh,不建议更改sshd_config 配置文件,因为这些配置都没变,曾经都是好使的
———————————下面是一些其他功能,可参考———————————
CentOS7(linux)中ssh服务配置
我采用的是Vmware安装的CentOS7系统.
一、首先确认系统中是否安装了ssh服务
一般来说,CentOS7系统会自带ssh服务,不需要安装,当然我们还是要检查一下系统是否安装ssh服务,命令如下:
rpm -qa |grep ssh
如果系统已经有ssh服务结果如下:
二、如果系统中不存在ssh服务
ssh安装命令如下:
yum install ssh
三、配置sshd_config
ssd_config是sshd服务的配置文件,可在其中配置参数,登陆用户等,文件位置位于/etc/ssh/sshd_config,这里可以直接通过vi(不会vi编辑的自己查)命令打开文件进行主要参数的配置(把对应参数前面的警号去掉就可以了):
1、Port 22,sshd服务的端口
2、Protocol 2,也就是外部连接的协议用ssh2,当然如果不设置也可。
3、PermitRootLogin no/yes,如果允许使用root登陆则设为yes,否则为no
4、PasswordAuthentication no/yes,no为不允许使用密码登陆,yes为允许使用密码登陆,一般如果用自己账户登录都用密码,所以这一项最好设为yes,否则会导致window中能ping通linux系统,但是ssh连接不上。
设置好后保存退出。
注:需要的vi命令如下:
vi /ect/ssh/sshd_config //打开文件
按i键 //进入vi编辑模式,能够更改文件
esc //编辑完文件后按esc退出编辑模式
shift+: //可以输入退出命令
q! //退出不保存
wq //退出并保存
四、启动/重启ssh服务
启动命令为:
/kkdjqm/systemctl restart sshd.service //这是我用的重启命令
/kkdjqm/systemctl start sshd.service //这是我用的启动命令
service sshd restart //这个是网上其他人说的,我试了一下不行
service sshd start //这个是网上其他人说的,我试了一下不行
设置开机自动启动ssh服务
systemctl enable sshd.service
五、启动以后查看是否打开了服务
查看服务命令为:
netstat -antup|grep ssh
1
启动成功后结果如下,一般我们外部连接都是tcp协议的,可以看到我们当前能连接的用户、连接地址和端口号。
六、配置防火墙
由于CentOS7防火墙默认的是firewall,网上许多人说改成iptables(如果是用iptables的自己配置)。
首先,我们查看ssh所用的端口是否已经打开,这里我已22端口为例:
firewall-cmd --state //查看防火墙是否打开,打开为running
firewall-cmd --zone=public --query-port=22/tcp //端口如果开放则为yes,否则为no
如果22端口没有开放,我们可以用以下两种方法解决:
1、关闭防火墙:/kkdjqm/systemctl stop firewalld.service
2、开放22端口:
firewall-cmd --zone=public --add-port=22/tcp --permanent //添加(--permanent永久生效,没有此参数重启后失效)
firewall-cmd --reload //添加完成后要重新载入
firewall-cmd --zone= public --query-port=22/tcp //查看
七、外部用secureCRT连接
这里我们用SecureCRT连接,当然自己可以选择shell或者putty等软件,
连接时需要注意,虚拟机装的Linux系统,如果是本机以外的电脑要连接的话需要配置实际的物理地址(当然只用本机连接不需要),配置实际物理地址只需要把虚拟机设置里的网络适配器改为桥接模式,然后重启即可。
八、总结
虚拟机的Linux系统ssh服务连接总的来说4个关键点:1、ssh服务是否启动,2、防火墙是否开放端口,3、是否又实际的物理网址。4、sshd_config中的相关参数是否配置。
ssh允许使用root用户使用密码登陆
修改配置文件 vim /etc/ssh/sshd_config
允许用root用户登录 PermitRootLogin yes
允许密码登录PasswordAuthentication yes
重启SSH服务systemctl restart sshd
配置密钥免密码登陆
如果已经在云服务器控制中心生成了秘钥,就请略过下面的生成秘钥,直接修改配置文件即可
cd 回到家目录
ssh-keygen -t rsa 生成密钥,一路回车即可
cd .ssh 查看密钥,隐藏文件需要 ll -a 才能看见
vim /etc/ssh/sshd_config 修改SSH配置文件
PermitRootLogin yes
禁用root账户登录,如果是用root用户登录请开启
StrictModes no
是否让sshd 去检查用户家目录或相关档案的权限数据,这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
RSAAuthentication yes
PubkeyAuthentication yes
是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
AuthorizedKeysFile .ssh/authorized_keys
至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
PasswordAuthentication no
有了证书登录了,就禁用密码登录吧,安全要紧
写入公钥数据。
cat id_ras.pub >> authorized_keys
把公钥数据id_rsa.pub附加到 authorized_keys 这个档案内
systemctl restart sshd
重启SSH服务
下载私钥
使用lrzsz工具进行上传下载。
yum -y install lrzsz
如果系统默认没有安装的话先进行安装
sz id_ras
仍然在当前目录下,直接输入命令后即可弹出对话框,让你选择存放到本地的位置,放到桌面即可,方便选择
使用你的远程连接工具进行登录,登录方式中选择密钥登录,然后浏览选中刚才下载的密钥进行导入,导入后下载的密钥请存放到安全位置,以后就可以直接登录不输密码了,本人使用Xshell,如下图。
以上所有配置完成,看网上别的教程还说要注意各文件权限问题,我做实验的过程没有遇到,也可能我使用的是root用户的原因,如果你们在过程中有权限报错,建议尝试设置权限如下:
~/.ssh/ 700
.ssh/authorized_keys 644
.ssh/id_rsa 600 且属于你当前要添加的用户
(非必要,仅供参考)让服务器更安全,开启密码和证书双重验证,先修改SSH配置文件:
vim /etc/ssh/sshd_config
PasswordAuthentication 改为yes
然后再加一条:AuthenticationMethods publickey,password
重启SSH服务:systemctl restart sshd.service
PS:在配置完成后不要关闭当前的远程连接窗口,你可以使用新建连接尝试登陆,以免配置出错,造成服务器无法登陆。
PSPS:如果还是打不开,可以尝试先打开网页版的远程登录,登陆后再使用远程连接工具进行连接。