在ubuntu9.10下安装telnet服务一文中介绍了在ubuntu下如何安装和配置tenlet服务。
telnet采用明文传输,因此,对于远程访问是不安全的。如果要实现远程安全访问ubuntu宿主机,可使用ssh服务。在嵌入式linux开发中,telnet和ssh一般都要使用,前者一般用于代替串口登陆到目标板进行相应调试和命令操作等(telnet比较简单,方便移植到嵌入式linux中,因此,大都数嵌入式linux系统都具有telnet);后者一般用于使用xShell、putty等终端软件登陆到Ubuntu宿主机。
本文主要详细介绍了在ubuntu下安装ssh服务的方法与步骤。
1 安装ssh_server
linux中的网络服务在文件夹 /etc/init.d/中都能找到,以ssh服务为例:
要启动某个服务,可用如下格式:
停止服务:
重启:
还有另外一种方式完成一个服务的启动、停止、重启,如:
service ssh stop
service ssh restart
linux中服务的配置文件:有些保存在/etc/服务名/ 目录下,以ssh为例:
ssh服务的配置文件保存在目录 /etc/ssh/ 中,具体是/etc/ssh/sshd_config (可以看出,服务的配置文件名是以该服务对应的进程名命名的)。
有些服务的配置文件则以 服务进程名.conf 名字为文件名直接保存在 /etc 目录下,以vsftpd服务为例:
vsftp服务的配置文件为 /etc/vsftpd.conf。
2 在主机上添加一个用户
先为用户创建根目录:
添加用户:
修改文件属性:
3 为用户 test 设置密码:
以管理员身份登录后,执行:
按照提示,输入密码即可。
4 完成上面的配置后,确保服务已经打开(可用ps命令查看),然后用户就可在Windows或者Unix下通过任 意终端登录到我们的服务中。
5 登录openssh-server时候,会发现要等很长时间,服务器才返回输入密码的提示语。原因在于openssh-server默认情况下会根据用户的IP地址,反向查询DNS,从而导致延时很大。其中具体原因还有待进一步研究 ^_^ 。可以通过在配置文件中关闭这种功能来提速客户端的访问。具体做法是,在配置文件/etc/ssh/sshd_config中添加如下两行即可:
UseDNS no
若原来已经有UseDNS yes,则把yes改为no即可。
重启服务:
再次登录,“网速”变快了,呵呵
另外,SSH还可实现主机之间免验证登录。假设要从本地Linux hostA 在用户userA下登录到远程Linux hostB的用户userB下,具体做法为:
1.在本地执行:
一路回车即可。这样,就会在/home/userA/.ssh/目录下生成公私密钥对,
公钥为:id_rsa.pub
私钥为:id_rsa
2.将本地/home/userA/.ssh/id_rsa.pub 文件传到远程主机hostB,远程主机中具体的目标路径为:
3.在远程主机hostB中执行:
或者:
4.在本地主机hostA中,确保ssh-agent已经运行,可通过如下命令查看:
若没有运行,则运行如下命令:
5.添加id_rsa到ssh-agent,具体命令为:
6.完成以上步骤后,执行:
即可实现免验证登录。