SSH on Ubuntu

 

SSH是指Secure Shell,SSH协议族由IETF(Internet Engineering Task Force)的Network Working Group制定,SSH协议的内容SSH协议是建立在应用层和传输层基础上的安全协议。

传统的网络服务程序,如FTP、Pop和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间 人 (man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据 传给真正的服务器。

SSH(Secure Shell)是目前比较可靠的为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。
SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、Pop、甚至为PPP提供一个安全的"通道"。

 

 

1. 设置

sudo apt-get install ssh
2. 端口可以更改
sudo gedit /etc/ssh/sshd_config (默认22端口)
3. 重启服务
sudo /etc/init.d/ssh restart

4. 服务启动确认

        netstat -ntl

5. 在客户机上产生public key

 ssh-keygen

 按缺省生成就行了。如果一切正常,那么就应该在自己的home目录下的.ssh文件夹下生成两个文件:

id_rsa, id_rsa.pub

一个是私钥,一个是公钥,公钥文件id_rsa.pub拷贝到服务器上,然后导入需要登录的用户。

比如使用rize用户登录ssh服务器,就导入/home/rize/.ssh目录下。

 

cat id_rsa.pub >>authorized_keys

这样就可以不用输入密码就登录ssh

 

6. 登录服务器:

       假设ip为210.107.1.23,ssh服务的端口号为5678,服务器上有个用户为rize:

ssh -l rize 210.107.1.23 -p 5678

  ssh rize@210.107.1.23    (常用)

回车后,假如是第一次登录,会提示你一条认证信息,你键入yes即可,接着输入服务器rize的密码登录即可。

 

7. 用sftp登录服务器的命令为:

>sftp -oPort=5678 rize@210.107.1.23

键入help你会看到所有命令的帮助,跟ftp命令行工具非常类似,比如get,put等等。


8. 常用命令:

将 文件/文件夹 从远程 Ubuntu 机拷至本地(scp)

scp -r username@192.168.0.1:/home/username/remotefile.txt .


将 文件/文件夹 从远程 Ubuntu 机拷至本地(rsync)

rsync -v -u -a --delete --rsh=ssh --stats username@192.168.0.1:/home/username/remotefile.txt .


 

--------------------------------------------------------------------------------------

如何限制通过SSH远程连接的用户帐号

如,假如你启用了SSH服务,那么任何有有效帐号的用户都可以远程连接。这可能会导致一些安全问题,由于有一些远程密码破解工具可以尝试常见的用户名/密码

备份SSH服务的配置文件

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ORIGINAL

编辑配置文件

sudo gedit /etc/ssh/sshd_config

* 将参数 PermitRootLogin 由 yes 更改为 no。 超级用户不能直接通过远程联机。
* 添加参数 AllowUsers 设定远程连接的用户名 (用空格来分割) 。
* 您也可以使用 DenyUsers for fine-grained selection of users.
* If you enable the openssh server and you have no intention for now to enable remote connections, you may add AllowUsers nosuchuserhere to disable anyone connecting.

 

---------------------------------------------------------------------------------------

SSH 命令

ssh 命令可以用来在远程机器上不经 shell 提示登录而执行命令。它的语法格式是: ssh hostname command。

譬如,如果你想在远程主机 penguin.example.net 上执行 ls /usr/share/doc 命令,在 shell 提示下键入下面的命令:

ssh penguin.example.net ls /usr/share/doc

3.2. 使用 scp 命令

scp 命令可以用来通过安全、加密的连接在机器间传输文件。它与 rcp 相似。

把本地文件传输给远程系统的一般语法是:

scp localfile username@tohostname:/newfilename

localfile 指定源文件,username@tohostname:/newfilename 指定目标文件。

要把本地文件 shadowman 传送到你在 penguin.example.net 上的账号内,在 shell 提示下键入(把 username 替换成你的用户名):

scp shadowman username@penguin.example.net:/home/username

这会把本地文件 shadowman 传输给 penguin.example.net 上的 /home/username/shadowman 文件。

把远程文件传输给本地系统的一般语法是:

scp username@tohostname:/remotefile /newlocalfile

remotefile 指定源文件,newlocalfile 指定目标文件。

源文件可以由多个文件组成。譬如,要把目录 /downloads 的内容传输到远程机器 penguin.example.net 上现存的 uploads 目录,在 shell 提示下键入下列命令:

scp /downloads/* username@penguin.example.net:/uploads/

3.3. 使用 sftp 命令

sftp 工具可以用来打开一次安全互动的 FTP 会话。它与 ftp 相似,只不过,它使用安全、加密的连接。它的一般语法是:sftp username@hostname.com。一旦通过 验证,你可以使用一组和使用 FTP 相似的命令。请参阅 sftp 的说明书页(man).

 

转载于:https://www.cnblogs.com/jinrize/archive/2009/10/26/1590060.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值