文章目录:
- 1、如何通过SSH远程连接计算机?
- 2、windows 中如何用SSH 连接 linux
- 3、SSH的端口绑定、端口转发分别是什么意思?如何用SSH的远程端口转发功能连接NAT内网主机?
- 4、在linux下登录ssh如何指定端口?
- 5、修改了服务器ssh端口之后链接不上了?
- 6、服务器把ssh的端口号改了,在linux终端怎么用sftp连接
如何通过SSH远程连接计算机?
命令格式: ssh [-p port] user@remote
user 是在远程机器上的用户名,如果不指定的话默认为当前用户
remote 是远程机器的地址,可以是 IP/域名,或者是 后面会提到的别名
port 是 SSH Server 监听的端口,如果不指定,就为默认值 22
ssh 这个终端命令只能在 Linux 或者 UNIX 系统下使用
如果在 Windows 系统中,可以安装 PuTTY 或其它远程 连接软件即可
在工作中,SSH 服务器的端口号很有可能不是 22,如果遇到这种情况就需要使用 -p 选项,指定正确的端口号,否则无法正常连接到服务器。相关内容黑马程序员软件测试的基础班都有,你要想学的话,基础班有活动的话还免费。有人带着之后基本上自己就有方向了。
windows 中如何用SSH 连接 linux
这里的”远程”操控的方法实际上也不是真正的远程.,此操作方法主要是在一个局域网内远程操控电脑 (在一个路由器下)。
操作步骤:
1、百度搜索“SSH Secure Shell Client”下载并安装。
2、打开我们安装好的SSH Secure Shell Client。
3、点击Profiles选择add profiles 并添加profils名称(自定义一个名字)
4、然后点击刚定义好的profiles,出现如下界面,填写远程linux的ip,用户名,密码,port 默认为22;Authentication 选择password,点击connect。
5、出现如下界面,表示连接成功。
6、选择文件夹按钮可以用“资源管理器”的形式查看,传输文件。
7、出现如下界面,左面是指你的桌面,右面是你的远程linux桌面,接下来你就可以尽情操纵你的linux了。
SSH的端口绑定、端口转发分别是什么意思?如何用SSH的远程端口转发功能连接NAT内网主机?
除了类似Telnet的远程命令这一基本功能,SSH命令还提供了端口绑定、端口转发、socks代理等实用功能。故此,SSH并非一款简单的安全telnet替代,其功能较Telnet要多上许多。
端口绑定
ssh命令的-D选项可以实现本地端口绑定功能。譬如,本机要访问某FTP服务,然而众所周知,FTP是一个不安全协议,可能被中间人攻击。这种情况下,我们可以运行如下命令:
ssh -D 21 user@host
来将本地的21端口绑定到远程主机上。这种情况下,所有发往21端口的数据,都会被转移到ssh主机上,达到加密功能。
端口转发
端口转发分两种:本地和远程
本地转发:ssh -L 2121:host2:21 host3
命令中的L参数一共接受三个值,分别是"本地端口:目标主机:目标主机端口",它们之间用冒号分隔。这条命令的意思,就是指定SSH绑定本地端口2121,然后指定host3将所有的数据,转发到目标主机host2的21端口(假定host2运行FTP,默认端口为21)。这样一来,我们只要连接host1的2121端口,就等于连上了host2的21端口。
远程转发:ssh -R 2121:host2:21 host1
R参数也是接受三个值,分别是"远程主机端口:目标主机:目标主机端口"。这条命令的意思,就是让host1监听它自己的2121端口,然后将所有数据经由host3,转发到host2的21端口。由于对于host3来说,host1是远程主机,所以这种情况就被称为"远程端口绑定"。绑定之后,我们在host1就可以连接host2了。
内网穿透
要实现内网穿透,只要利用远程转发就可以了。记得配置好跳板服务器。
在linux下登录ssh如何指定端口?
修改SSH端口号为制定端口即可。
1、通过SSH连接可以远程管理Linux等设备,默认linuxssh端口是22端口,需要自己制定端口可以直接修改端口或者增加一个端口。
2、使用VI \vim编辑器,打开sshd_config这个文件,搜索找到 port字段。
3、将光标定位到port 22这行 yy 然后键盘 P复制一行, insert插入编辑22端口为2222。
4、设置好之后如下图,wq保存退出, 表示已经增加了一个2222端口号,这个2222端口号就成为制定端口号。
5、设置好之后,当然重启SSH服务即可。
5、需要制定端口号,直接增加一个port端口即可。
修改了服务器ssh端口之后链接不上了?
大哥,更改了默认端口,要加参数p的,应该这样连 ssh user@106.x.x.x -p 2300
服务器把ssh的端口号改了,在linux终端怎么用sftp连接
从技术角度来分析,几个要求:
1、从安全方面看,sftp会更安全一点
2、线上服务器提供在线服务,对用户需要控制,只能让用户在自己的home目录下活动
3、用户只能使用sftp,不能ssh到机器进行操作
提供sftp服务,可以用系统自带的internal-sftp,也可以使用vsftpd,这里需求不多,直接选用internal-sftp。
限制用户只能在自己的home目录下活动,这里需要使用到chroot,openssh 4.8p1以后都支持chroot,我现在用的是CentOS 6.3,自带的openssh已经是5.3p1,足够了。
可以输入:
# ssh -V
来查看openssh的版本,如果低于4.8p1,需要自行升级安装,不在这里具体介绍了。
假设,有一个名为sftp的组,这个组中的用户只能使用sftp,不能使用ssh,且sftp登录后只能在自己的home目录下活动
1、创建sftp组
# groupadd sftp
2、创建一个sftp用户,名为mysftp
# useradd -g sftp -s /bin/false mysftp
# passwd mysftp
3、sftp组的用户的home目录统一指定到/data/sftp下,按用户名区分,这里先新建一个mysftp目录,然后指定mysftp的home为/data/sftp/mysftp
# mkdir -p /data/sftp/mysftp
# usermod -d /data/sftp/mysftp mysftp
4、配置sshd_config
编辑 /etc/ssh/sshd_config
# vim +132 /etc/ssh/sshd_config
找到如下这行,并注释掉
Subsystem sftp /usr/libexec/openssh/sftp-server
添加如下几行
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
解释一下添加的几行的意思
Subsystem sftp internal-sftp
这行指定使用sftp服务使用系统自带的internal-sftp
Match Group sftp
这行用来匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割
当然,也可以匹配用户
Match User mysftp
这样就可以匹配用户了,多个用户名之间也是用逗号分割,但我们这里按组匹配更灵活和方便
ChrootDirectory /data/sftp/%u
用chroot将用户的根目录指定到/data/sftp/%u,%u代表用户名,这样用户就只能在/data/sftp/%u下活动,chroot的含义,可以参考这里:
ForceCommand internal-sftp
指定sftp命令
AllowTcpForwarding no
X11Forwarding no
这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
5、设定Chroot目录权限
# chown root:sftp /data/sftp/mysftp
# chmod 755 /data/sftp/mysftp
错误的目录权限设定会导致在log中出现”fatal: bad ownership or modes for chroot directory XXXXXX”的内容
目录的权限设定有两个要点:
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
# chown mysftp:sftp /data/sftp/mysftp/upload
# chmod 755 /data/sftp/mysftp/upload
7、重启sshd服务
# service sshd restart
到这里,mysftp已经可以通过sftp客户端登录并可以上传文件到upload目录。
如果还是不能在此目录下上传文件,提示没有权限,检查SElinux是否关闭,可以使用如下指令关闭SElinux
关于Linux命令的介绍,看看《linux就该这么学》,具体关于这一章地址3w(dot)linuxprobe/chapter-02(dot)html
修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。或者
# setenforce 0
有两个要点:1、由ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root2、由ChrootDirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限
目录照上面设置后,在重启sshd服务后,用户mysftp已经可以登录,但使用chroot指定根目录后,根应该是无法写入的,所以要新建一个目录供mysftp上传文件。这个目录所有者为mysftp