centos 6 配置ssh,centos7ssh连接不上

ssh怎么登录FTPssh怎么登录

如何打开SSH的FTP帐户

我们开始吧:

首先修改sshd的配置文件:

$sudonano/etc/ssh/sshd_config

修改该文件的结尾,如下所示:

#子系统sftp/usr/lib/OpenSSH/sftp-服务器

#注释掉这一行(上面的那一行)

子系统sftp内部-sftp

匹配组sftp

#匹配sftp组,如果单个用户可用:匹配用户用户名

ChrootDirectory/sftphome/

#指定锁定用户的目录。为了使chroot成功,该目录必须由root所有,并且不能由其他用户或组写入。

X11转发号

AllowTcpForwarding编号

内部强制命令-sftp

#使用PAM是

#这一行(上面的行)也被注释掉,或移到子系统sftpinternal-sftp的顶部。

下面设置了sftp组和属于sftp组的testuserTestUser:

$sudo组添加sftp

$sudouseradd-d/testuser-s/bin/false-gsftptestuser

$sudo密码测试用户

创建Ftp目录:

$sudomkdir-p/sftphome/testuser

重新启动SSH服务sshd:

$sudo/etc/init.d/sshreload

此时,使用具有sftp功能的客户端软件,如filezilla、flashfxp,就可以使用testuser登录使用sftp的服务器;

但是,此时无法在/sftphome/testuser目录中创建或修改文件,因此有必要修改目录权限,并将testuser目录所有者授予用户testuser:

$sudochowntestuser:sftp/sftphome/testuser

这样,testuser用户可以自由地操作这个目录。

SSH与FTP之间的关系与区别?

协议不一样。ftp一般用21端口;sftp是22端口,ssh服务提供的,有加密,传输安全性高

电脑术语ssh,rdp,ftp,vnc分别是什么意思?

ssh用来连接远程主机(linux或unix),数据传输是加密的,和telnet一样的,只是telnet的数据传输没加密,数据安全性存在问题;

ftp是文件上传下载协议(linux或unix);

vnc和rdp都是用来连接远程主机的,不过一般rdp用来远程windows的多,linux和unix也对rdp支持。

如何创建ftp服务器用户名和密码?

1:如果是可以以shell登录的纯系统用户,可以直接用用户ssh登录到用户系统,passwd修改用户命令如果是系统用户,但不能shell登录,这个估计也改不了。

2:如果是通过数据库认证的ftp用户,估计你需在拿到数据库的权限才能改。

ssh访问端口是什么?

SSH的访问端口是TCP22。

TCP很重要,因为传统上SSH在通过TCP(而不是UDP)提供的可靠连接上工作。

譬如,SSH端口22由IANA或互联网号码分配机构(InternetAssignedNumbersAuthority)的TatuYlonen于1995年注册。SSH旨在取代telnet和FTP。Telnet使用端口号21,而Ftp使用端口号23。端口22当时是空闲的,并且作为Telnet和FTP的替代,SSH被分配给TCP22。

在Linux系统下使用SSH实现端口映射的方法?

从技术角度来分析,几个要求:

1、从安全方面看,sftp会更安全一点

2、线上服务器提供在线服务,对用户需要控制,只能让用户在自己的home目录下活动

3、用户只能使用sftp,不能ssh到机器进行操作

提供sftp服务,可以用系统自带的internal-sftp,也可以使用vsftpd,这里需求不多,直接选用internal-sftp。

限制用户只能在自己的home目录下活动,这里需要使用到chroot,openssh4.8p1以后都支持chroot,我现在用的是centos6.3,自带的openssh已经是5.3p1,足够了。

可以输入:

#ssh-v

来查看openssh的版本,如果低于4.8p1,需要自行升级安装,不在这里具体介绍了。

假设,有一个名为sftp的组,这个组中的用户只能使用sftp,不能使用ssh,且sftp登录后只能在自己的home目录下活动

1、创建sftp组

#groupaddsftp

2、创建一个sftp用户,名为mysftp

#useradd-gsftp-s/bin/falsemysftp

#passwdmysftp

3、sftp组的用户的home目录统一指定到/data/sftp下,按用户名区分,这里先新建一个mysftp目录,然后指定mysftp的home为/data/sftp/mysftp

#mkdir-p/data/sftp/mysftp

#usermod-d/data/sftp/mysftpmysftp

4、配置sshd_config

编辑/etc/ssh/sshd_config

#vim+132/etc/ssh/sshd_config

找到如下这行,并注释掉

subsystemsftp/usr/libexec/openssh/sftp-server

添加如下几行

subsystemsftpinternal-sftp

matchgroupsftp

chrootdirectory/data/sftp/%u

forcecommandinternal-sftp

allowtcpforwardingno

x11forwardingno

解释一下添加的几行的意思

subsystemsftpinternal-sftp

这行指定使用sftp服务使用系统自带的internal-sftp

matchgroupsftp

这行用来匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割

当然,也可以匹配用户

matchusermysftp

这样就可以匹配用户了,多个用户名之间也是用逗号分割,但我们这里按组匹配更灵活和方便

chrootdirectory/data/sftp/%u

用chroot将用户的根目录指定到/data/sftp/%u,%u代表用户名,这样用户就只能在/data/sftp/%u下活动,chroot的含义,可以参考这里:

forcecommandinternal-sftp

指定sftp命令

allowtcpforwardingno

x11forwardingno

这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉

5、设定chroot目录权限

#chownroot:sftp/data/sftp/mysftp

#chmod755/data/sftp/mysftp

错误的目录权限设定会导致在log中出现”fatal:badownershipormodesforchrootdirectoryxxxxxx”的内容

目录的权限设定有两个要点:

1、由chrootdirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root

2、由chrootdirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限

所以遵循以上两个原则

1)我们将/data/sftp/mysftp的所有者设置为了root,所有组设置为sftp

2)我们将/data/sftp/mysftp的权限设置为755,所有者root有写入权限,而所有组sftp无写入权限

6、建立sftp用户登入后可写入的目录

照上面设置后,在重启sshd服务后,用户mysftp已经可以登录,但使用chroot指定根目录后,根应该是无法写入的,所以要新建一个目录供mysftp上传文件。这个目录所有者为mysftp,所有组为sftp,所有者有写入权限,而所有组无写入权限

#mkdir/data/sftp/mysftp/upload

#chownmysftp:sftp/data/sftp/mysftp/upload

#chmod755/data/sftp/mysftp/upload

7、重启sshd服务

#servicesshdrestart

到这里,mysftp已经可以通过sftp客户端登录并可以上传文件到upload目录。

如果还是不能在此目录下上传文件,提示没有权限,检查selinux是否关闭,可以使用如下指令关闭selinux

修改/etc/selinux/config文件中的selinux=""为disabled,然后重启。或者

#setenforce0

如何在 CentOS / RHEL 上设置 SSH 免密码登录

作为系统管理员,你计划在 Linux上使用 OpenSSH,完成日常工作的自动化,比如文件传输、备份数据库转储文件到另一台服务器等。为实现该目标,你需要从主机 A能自动登录到主机 B。自动登录也就是说,要在 shell脚本中使用ssh,而无需要输入任何密码。

本文会告诉你怎样在 CentOS/RHEL上设置 SSH免密码登录。自动登录配置好以后,你可以通过它使用 SSH(Secure Shell)和安全复制(SCP)来移动文件。

SSH是开源的,是用于远程登录的最为可靠的网络协议。系统管理员用它来执行命令,以及通过 SCP协议在网络上向另一台电脑传输文件。

通过配置 SSH免密码登录,你可以享受到如下的便利:

用脚本实现日常工作的自动化。

增强 Linux服务器的安全性。这是防范虚拟专用服务器(VPS)遭受暴力破解攻击的一个推荐的方法,SSH密钥单凭暴力破解是几乎不可攻破的。

什么是 ssh-keygen

ssh-keygen是一个用来生成、创建和管理 SSH认证用的公私钥的工具。通过 ssh-keygen命令,用户可以创建支持SSH1和 SSH2两个协议的密钥。ssh-keygen为 SSH1协议创建 RSA密钥,SSH2则可以是 RSA或 DSA。

什么是 ssh-copy-id

ssh-copy-id是用来将本地公钥拷贝到远程的 authorized_keys文件的脚本命令,它还会将身份标识文件追加到远程机器的~/.ssh/authorized_keys文件中,并给远程主机的用户主目录适当的的权限。

SSH密钥

SSH密钥为登录 Linux服务器提供了更好且安全的机制。运行 ssh-keygen后,将会生成公私密钥对。你可以将公钥放置到任意服务器,从持有私钥的客户端连接到服务器的时,会用它来解锁。两者匹配时,系统无需密码就能解除锁定。

在 CentOS和 RHEL上设置免密码登录 SSH

以下步骤在 CentOS 5/6/7、RHEL 5/6/7和 Oracle Linux 6/7上测试通过。

节点1: 192.168.0.9节点2: 192.168.l.10

步骤1:

测试节点1到节点2的连接和访问:

[root@node1~]# ssh root@192.168.0.10The authenticity of host'192.168.0.10(192.168.0.10)' can't be established.RSA key fingerprint is 6d:8f:63:9b:3b:63:e1:72:b3:06:a4:e4:f4:37:21:42.Are you sure you want to continue connecting(yes/no)? yesWarning: Permanently added'192.168.0.10'(RSA) to the list of known hosts.root@192.168.0.10's password:Last login: Thu Dec 10 22:04:55 2015 from 192.168.0.1[root@node2~]#

步骤二:

使用 ssh-key-gen命令生成公钥和私钥,这里要注意的是可以对私钥进行加密保护以增强安全性。

[root@node1~]# ssh-keygenGenerating 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_rsa.pub.The key fingerprint is:b4:51:7e:1e:52:61:cd:fb:b2:98:4b:ad:a1:8b:31:6d root@node1.ehowstuff.localThe key's randomart image is:+--[ RSA 2048]----+|.++|| o o o|| o o o.||. o+..|| S..||....|| o E oo.o||= ooo.||. o.o.|+-----------------+

步骤三:

用 ssh-copy-id命令将公钥复制或上传到远程主机,并将身份标识文件追加到节点2的~/.ssh/authorized_keys中:

[root@node1~]# ssh-copy-id-i~/.ssh/id_rsa.pub 192.168.0.10root@192.168.0.10's password:Now try logging into the machine, with"ssh'192.168.0.10'", and check in:.ssh/authorized_keysto make sure we haven't added extra keys that you weren't expecting.

步骤四:

验证免密码 SSH登录节点2:

[root@node1~]# ssh root@192.168.0.10Last login: Sun Dec 13 14:03:20 2015 from www.ehowstuff.local

我希望这篇文章能帮助到你,为你提供 SSH免密码登录 CentOS/ RHEL的基本认知和快速指南。

CentOS服务器端配置SSH远程连接的教程

安装好了CentOS 6.4,我想让它作为一个服务器,可以让我的Windows 7电脑远程登录。

安装OpenSSH Server

首先,我们搜索一下CentOS的软件库里面有没有已经定义好的SSH服务器包:

复制代码代码如下:

$ yum search ssh

……

openssh.x86_64: An open source implementation of SSH protocol versions 1 and 2

openssh-askpass.x86_64: A passphrase dialog for OpenSSH and X

openssh-clients.x86_64: An open source SSH client applications

openssh-ldap.x86_64: A LDAP support for open source SSH server daemon

openssh-server.x86_64: An open source SSH server daemon

……

OpenSSH是Secure Shell的一个开源实现。从上面的搜索结果可以看到,CentOS的软件库里面已经有了OpenSSH的服务器包(openssh-server)和客户端包(openssh-clients),用yum install可以直接安装。

复制代码代码如下:

$ yum install openssh-server

OpenSSH Server安装完成后在/etc/init.d目录下应该会增加一个名为sshd的服务。

复制代码代码如下:

$ chkconfig–list sshd

sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

手动启动sshd服务,方便后面客户端的连接:

关闭:

复制代码代码如下:/etc/init.d/sshd stop

启动:

复制代码代码如下:/etc/init.d/sshd start

重启:

复制代码代码如下:/etc/init.d/sshd restart

运行

1、重启后生效

开启:

复制代码代码如下:chkconfig sshd on

关闭:

复制代码代码如下:chkconfig sshd off

2、即时生效,重启后失效

开启:

复制代码代码如下:service sshd start

关闭:

复制代码代码如下:service sshd stop

PS:CentOS中SSH连接中文乱码问题的解决

CentOS 6,在SSH时回显中文乱码,则:

修改/etc/sysconfig/i18n文件

命令:

复制代码代码如下:vi/etc/sysconfig/i18n

将里面的文字最终修改为:

复制代码代码如下:

LANG="zh_CN.GB18030"

LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"

SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"

SYSFONT="lat0-sun16"

最后,断开重连SSH就可以了,进入用date命令既可查看效果

阅读剩余
THE END