Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103695130
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-05-05 16:59:48

 

OpenSSH是SSH(Secure SHell)协议的免费开源实现。它用安全、加密的网络连接工具代替了telnet、ftp、rlogin、rsh和rcp工具。OpenSSH支持SSH协议的版本1.3、1.5和2。自从OpenSSH的版本2.9以来,默认的协议是版本2,该协议默认使用RSA密钥。

使用OpenSSH工具将会增进你的系统安全性。所有使用OpenSSH工具的通讯,包括口令,都会被加密。telnet和ftp使用纯文本口令,并被明文发送。这些信息可能会被截取,口令可能会被检索,然后未经授权的人员可能会使用截取的口令登录你的系统而对你的系统造成危害。你应该尽可能地使用OpenSSH的工具集来避免这些安全问题。

另一个使用OpenSSH的原因是,它自动把DISPLAY变量转发给客户机器。换一句话说,如果你在本地机器上运行X窗口系统,并且使用ssh命令登录到了远程机器上,当你在远程机器上执行一个需要X的程序时,它会显示在你的本地机器上。如果你偏爱图形化系统管理工具,却不能够总是亲身访问该服务器,这就会为你的工作大开方便之门。

要运行OpenSSH服务器,你必须首先确定你安装了正确的RPM软件包。openssh-server软件包是必不可少的,并且它依赖于openssh软件包的安装与否。

OpenSSH守护进程使用/etc/ssh/sshd_config配置文件。默认配置文件在多数情况下应该足以胜任。如果你想使用没有被默认的sshd_config文件提供的方式来配置守护进程,请阅读sshd的MAN PAGE来获取能够在配置文件中定义的关键字列表。

要启动OpenSSH服务,使用/sbin/service sshd start命令。要停止OpenSSH服务器,使用/sbin/service sshd stop命令。
如果你重新安装了,任何在它被重装前使用OpenSSH工具连接到这个系统上的客户在它被重装后将会看到下列消息:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.

重装后的系统会为自己创建一组新的身份标识密钥;因此客户会看到RSA主机密钥改变的警告。如果你想保存系统原有的主机密钥,备份/etc/ssh/ssh_host*key*文件,然后在系统重装后恢复它。该过程会保留系统的身份。当客户机在该系统重装后试图连接它,它们就不会看到以上的警告信息。

要从客户机连接到OpenSSH服务器上,你必须在客户机器上装有openssh-clients和openssh软件包。

ssh命令是rlogin、rsh和telnet命令的安全替换。它允许你在远程机器上登录并在其上执行命令。
使用ssh来登录到远程机器和使用telnet相似。要登录到一个叫做penguin.example.net的远程机器,在shell提示下键入下面的命令:

ssh penguin.example.net

第一次使用ssh在远程机器上登录时,你会看到和下面相仿的消息:

The authenticity of host 'penguin.example.net' can't be established.
DSA key fingerprint is 94:68:3a:3a:bc:f3:9a:9b:01:5d:b3:07:38:e2:11:0c.
Are you sure you want to continue connecting (yes/no)?

键入 yes 来继续。这会把该服务器添加到你的已知主机的列表中,如下面的消息所示:

Warning: Permanently added 'penguin.example.net' (RSA) to the list of known hosts.

下一步,你会看到向你询问远程主机口令的提示。在输入口令后,你就会在远程主机的shell提示下了。如果你没有指定用户名,你在本地客户机器上登录用的用户名就会被传递给远程机器。如果你想指定不同的用户名,使用下面的命令:

ssh username@penguin.example.net

你还可以使用:

ssh -l username penguin.example.net。 

ssh命令可以用来在远程机器上不经shell提示登录而执行命令。它的语法格式是:ssh hostname command。譬如,如果你想在远程主机 penguin.example.net上执行ls /usr/share/doc命令,在shell提示下键入下面的命令:

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

在你输入了正确的口令之后,/usr/share/doc这个远程目录中的内容就会被显示,然后你就会被返回到你的本地shell提示下。

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/

sftp工具可以用来打开一次安全互动的FTP会话。它与ftp相似,只不过,它使用安全、加密的连接。它的一般语法是:

sftp username@hostname.com

一旦通过验证,你可以使用一组和使用FTP相似的命令。sftp工具只在OpenSSH版本2.5.0p1以上才有。

如果你不想每次使用ssh、scp或sftp时都要输入口令来连接远程机器,你可以生成一对授权钥匙。钥匙必须为每个用户生成。要为某用户生成钥匙,用想连接到远程机器的用户身份来遵循下面的步骤。如果你用根用户的身份完成了下列步骤,就只有根用户才能使用这对钥匙。
从OpenSSH版本3.0开始,~/.ssh/authorized_keys2、~/.ssh/known_hosts2和/etc/ssh_known_hosts2就会过时。SSH协议1和2共享~/.ssh/authorized_keys、~/.ssh/known_hosts和/etc/ssh/ssh_known_hosts文件。

GTES11默认使用SSH协议2和RSA密钥。

使用下列步骤来为SSH协议的版本2生成RSA密钥对。从OpenSSH 2.9开始,它已成为默认设置。要生成RSA密钥对与协议的版本2合作,在shell提示下键入下列命令:

ssh-keygen -t rsa

接受~/.ssh/id_rsa的默认位置。输入一个与你的帐号口令不同的口令句,再输入一次来确认。公钥被写入~/.ssh/id_rsa.pub。密钥被写入~/.ssh/id_rsa。决不能把密钥出示给任何人。
使用以下命令改变你的.ssh目录的许可权限:

chmod 755 ~/.ssh

把~/.ssh/id_rsa.pub的内容复制到你想连接的机器上的~/.ssh/authorized_keys文件中。如果~/.ssh/authorized_keys不存在,你可以把~/.ssh/id_rsa.pub文件复制到那个机器上的~/.ssh/authorized_keys文件中。
使用以下命令改变你的authorized_keys文件的许可权限:

chmod 644 ~/.ssh/authorized_keys

使用下面的步骤来为SSH协议的版本2生成DSA密钥对。 要生成用于协议的版本2的DSA密钥对,在启动和停止服务器shell提示下键入下面的命令:

ssh-keygen -t dsa

接受~/.ssh/id_dsa的默认位置。输入一个与你的帐号口令不同的口令句,再输入一次来确认。公钥被写入~/.ssh/id_dsa.pub。密钥被写入~/.ssh/id_dsa。决不能把密钥出示给任何人,这一点很重要。
使用以下命令改变你的.ssh目录的许可权限:

chmod 755 ~/.ssh

把~/.ssh/id_dsa.pub的内容复制到你想连接的机器中的~/.ssh/authorized_keys文件中。如果文件~/.ssh/authorized_keys不存在,你可以把~/.ssh/id_dsa.pub文件复制到那个机器上的~/.ssh/authorized_keys文件中。
使用以下命令改变你的 authorized_keys 文件的许可权限:

chmod 644 ~/.ssh/authorized_keys

使用下面的步骤来生成用于SSH协议版本1的RSA密钥对。如果你只在使用DSA的系统间连接,则不需要RSA版本1.3或RSA版本1.5密钥对。要生成RSA(版本1.3和1.5协议)密钥对,在shell提示下键入下列命令:

 
ssh-keygen -t rsa1

接受默认的位置(~/.ssh/identity)。输入和你的帐号口令不同的口令句。再输入一次来确认。公钥被写入~/.ssh/identity.pub。密钥被写入 ~/.ssh/identity。不要把你的密钥出示给任何人。
使用chmod 755 ~/.ssh和chmod 644 ~/.ssh/identity.pub命令改变你的.ssh目录和密钥的许可权限。
把~/.ssh/identity.pub的内容复制到你想连接的机器中的~/.ssh/authorized_keys文件中。如果文件~/.ssh/authorized_keys不存在,你可以把~/.ssh/identity.pub文件复制到远程机器上的~/.ssh/authorized_keys文件中。

阅读(298) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~