ssh配置使用
1.安装OpenSSH服务器
一般用ps -e查看会发现只有ssh-agent进程.
使用sudo apt-get install ssh 安装ssh服务器,结束后使用ps -e | grep ssh会看到多了一个sshd进程,这就是ssh服务器进程
2.ssh配置
OpenSSH守护进程在Red Hat中使用/etc/ssh/sshd_config配置文件,一般使用其默认配置即可。
启动OpenSSH服务,使用/sbin/service sshd start命令(一般在安装完成后sshd会自动启用,所以这步其实可以省略),然后使用ps -e看到多了一个sshd进程
关闭OpenSSH服务,使用service sshd stop
3.使用ssh命令
ssh命令是rlogin,rsh,telnet命令的安全替换。允许远程登录并在其上执行命令。
设服务器的IP地址为 219.244.122.129(假设fox用户为想要连接得用户名)
客户端的IP地址为 219.244.122.9
要从客户端连接到服务器,仅需使用 ssh 219.244.122.129,
也可以指定用户名,即:ssh username@219.244.122.129
(注意:
(1)在不指定用户名时,默认为在客户端所使用的用户名,你应该保证的是所使用的用户名在服务器端的机子上是存在的,在接下来所使用的登录口令实际上也是fox用户在服务器上登录密码。
(2)另外,第一次使用ssh时会得到如下信息:
Are you sure you want to continue connecting (yes/no)?输入yes继续。这会把该服务器添加到你的已知主机的列表中,如下面的消息所示:
Warning: Permanently added 'penguin. example.net' (RSA) to the
list of known hosts.
【此时,如果进入/etc/hosts文件查看,会看到多了如下一行内容:219.244.122.9 ubuntu # Added by NetworkManager】
下一步,你会看到向你询问远程主机口令的提示。在输入口令后,你就会在远程主机的 shell 提示下了。
)
经过这步后,你当前的shell就直接成为服务器的shell,可以进行相关操作。如下:
Last login: Tue Mar 13 00:46:55 2012 from kqiao
fox@ubuntu:~$
当然,也可以不用变成服务器shell而直接执行命令:
ssh fox@219.244.122.129 ls /usr/share (显示服务器/usr/share下文件)
(执行完该命令后,会直接回到当前客户端的shell)
4.使用scp命令
scp 命令可以用来通过安全、加密的连接在机器间传输文件。它与 rcp 相似。
如:scp localfilename fox@219.244.122.129:/home/fox/newfilename 客户机到服务器,要拷回文件的话反过来即可~
(注意这种方式下fox用户要拥有对新路经下文件的写权限)
5.使用sftp命令
这个命令的作用与ftp相似,语法为:sftp fox@219.244.122.129
通过验证后,可以使用与ftp相似的命令。
、
6.使用密钥登录
前面3,4,5部分都是采用口令登录的方法,所以在每次登录服务器之前都要重新输入fox用户的口令。可以采用ssh的功能来生成授权密钥使客户端自动登录。
现在我们所使用的ssh版本均为ssh2,下面来生成RSA密钥对:(注意这些步骤是在客户机上完成的!)
1. 在 shell 提示下键入下列命令: ssh-keygen -t rsa
直接按Enter,表示接受 ~/. ssh/id_rsa 的默认位置。
输入一个与你的帐号口令不同的密码短语(称为passphrase),再输入一次来确认。
公钥被写入 ~/. ssh/id_rsa.pub。密钥被写入 ~/. ssh/id_rsa。
决不能把密钥出示给任何人。
2. 使用 chmod 755 ~/. ssh 命令改变你的 .ssh 目录的许可权限。(因为.ssh的默认权限只有owner的drwx------)
3. 把~/. ssh/id_rsa.pub 的 内 容 复 制 到 你 想 连 接 的 机 器 (即服务器)上 的~/. ssh/authorized_keys 文件中。
如 果~/. ssh/authorized_keys 不 存 在,就自己创建一个,使用cp命令直接改成新文件名即可
(这步可以直接使用scp id_ras.pub fox@219.244.122.129:/home/fox/.ssh/authorized_keys即可。)
如果在第一步中没有使用密码短语,则第四步可以省略,直接连接即可,如果使用了密码短语,在ubuntu下需按第四步方法完成,在其他linux下,可以直接连接时输入密码短语即可。
4.在ubuntu下使用的ssh-agent,所以在客户端想要与服务器连接时,可以查看一下ssh-agent是否是启动的,(一般默认启动,没有的话直接用ssh-agent命令启动即可,其实ssh-agent的作用仅在免于频繁输入密码短语)。
然后在使用ssh-add id_rsa 此时会提示输入密码短语。通过后即可进行连接。(在以后的每次连接中,都不在需要输入密码短语,使用命令ssh-add -l用来查看ssh代理缓存的内容)
kqiao@ubuntu:~/.ssh$ ssh-add id_rsa Enter passphrase for id_rsa: Identity added: id_rsa (id_rsa) kqiao@ubuntu:~/.ssh$ ssh fox@219.244.122.129
(此时就可以无须密码登录远程主机,即服务器)
5. 使用 ~<Ctrl+z> 退出,回到本地目录。参考:http://297020555.blog.51cto.com/1396304/482120
remotehost$ ~^Z [1]+ Stopped ssh -l jsmith remotehost localhost$
现在你已经退回到了本地主机,ssh远程客户端会话就在UNIX 后台中运行,你可以向下面那 样查看它:
localhost$ jobs [1]+ Stopped ssh -l jsmith remotehost
你可以将后台运行的 ssh会话进程切换到前台,重新回到远程主机,而无需输入密码
localhost$ fg %1 ssh -l jsmith remotehost remotehost$
主机,输入退出符号: “~”与 “Control-Z”组合