我的系统是Linux Ubuntu 14.04 LTS的。
我想安装Hadoop,之前要安装ssh。
1. 执行sudo apt-get install ssh,系统提示:Depends: openssh-server (>= 1:6.6p1-2ubuntu1) but it is not going to be installed。
说依赖openssh-server。
2. 那我就执行sudo apt-get install openssh-server。
系统又提示:openssh-server : Depends: openssh-client (= 1:6.6p1-2ubuntu1) but 1:6.6p1-2ubuntu2 is to be installed。
说依赖openssh-client (= 1:6.6p1-2ubuntu1)。
3. 我再执行sudo apt-get install openssh-client。
又提示:openssh-client is already the newest version.
说openssh-client 已经是最新版本了。
安装openssh-server非要openssh-client 1:6.6p1-2ubuntu1的,我机器上面已经安装了openssh-client 1:6.6p1-2ubuntu2,怎么办?
请求大神帮忙!!
谢谢!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tcp_wrappers
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
解决方法这个问题花了我20分钟去查资料,网上写的解决方法也是五花八门,不过,总算解决了,分享出来和大家一起学习。
服务器正常,PING也能PING通。但是就是SSH连不上啊,出现这种问题,最大的可能就是防火墙没有关闭。
解决方法:
一、开启SSH
以root用户登录Linux,打开终端,运行: /etc/init.d/sshd restrat
二、关闭防火墙
1.在终端运行 setup
2,.选择 firewall 回车
3.按tab键切换到disablede项,然后按空格键选择,然后再按tab键切换到ok,按空格件选择
4.按tab键切换到quit,按空格件选择
然后用客户端ssh登录Linux,成功登录,呵呵 ^_^
三、关闭防火墙的另一种方式
/etc/init.d/iptables stop
四、如果ping不同,如果是在Vmware中安装的linux,需要在虚拟机设置中,将 NetworkAdapter设置成"Bridged"(桥接), 因为默认是“NAT”。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
很多可能的问题
相关的设置有:
ssh server
ipwrappers
iptables
selinux
一个设置不当就会出问题。
ssh链接,那就没有更好的远程操作办法了。除非,想办法hack
Ok,现在开始。。。。。
(请看完全文后再进行操作,我是边写文章边配置的,中间出现了很多问题,看完的话可以让你少走几段弯路。。。)
Ubuntu的apt-get工具之强大无人能及啊,这里不开强大的网络,离开了网络,仿佛就变得鸡肋了。所以,打开终端命令行:
$ sudo apt-get install openssh-server
我勒个去,怎么回事?我的这命令怎么这样?估计你的也是吧,见下图
怎么回事? 你猜……我猜是apt-get 的源列表里边找不到我想要的openssh吧,是这样。Apt-get应用就是通过一个记录有所有可用软件包的配置文件在服务器上查找你想要的可用软件 包,然后下载并安装的。难怪,现在都11.04了吧,我的跑的是9.04的Ubuntu。谁的服务器还给你维护着两年前的源,就算有,经历了两年的沧海桑 田,对应的更新地址应该也变了。解救而上述问题的方法就是更新你的sources.list,位于/etc/apt/sources.list 。 自己上搜索引擎search一下如何更新源列表,其实也就是复制粘贴,新手别忘了sudo 。另外,随着版本更新,老版本的源列表在执行:
$ sudo apt-get update
时,会出现大量not found 。证明该版本的源列表已经过期,尽量找新版本的。
jun更新成功后是:
然后重新执行上边命令试试:
$ sudo apt-get install openssh-server
会自动检索关联包,然后提示下载确认,输入:y ,回车,等他自行下载安装。
不出意外的话,更新完后就已经安装好了,其实我的除了一些小意外。不过是在自动配置ssh_config的时候,理论上不影响服务的运行的。(因为这时我是在边安装边写文章,一切都是实时的,下一步能不能安装成功,谁知道呢?),哈哈,我们继续。看看我的报错界面:
咱们来启动服务试试:
$ sudo /etc/init.d/ssh start
或者 :$ sudo /etc/init.d/ssh resart
不想在这敷衍,我的启动不开了,咱重启一下虚拟机,再试。我猜测是刚才更新东西还有配置是内核还有什么锁没有释放,Linux内核管理还有更新时持有的锁还有更改时的什么东西,都会影响到一些服务的启动,总之试试再说。重启:
$ sudo halt now (关闭后开启,或者restart,我总感觉halt后启动会快一些)
$ sudo reboot (额,还是reboot更快)
果然,重启也启动不了。你是不是也遇到同样问题?或许你的已经跑开了,一边乐着去吧,我得把它整理完了。还是启动不了,怎么办?搜集了老久,网上说,把openssh client卸载掉重新安装(ps:Ubuntu默认是已经包含了client的,咱就试试百。)
$ sudo apt-get remove openssh-client
等待片刻,索性把刚才装的opensshserver 也卸了。一切从零开始。
$ sudo apt-get remove openssh-server
然后先安装client:
$ sudo apt-get install openssh-client
还是不行,无果,好人没做成,自己掉进去了。上次装,一下子就OK了……问题是最提升人的,我继续。
原因找到:应该是版本问题,用的是9.04的系统,10.04的更新列表。造成版本的兼容问题。在原来基础上,系统自己检测,经过upgrade manager自动更新了部分库以后,服务自己启动了。看看sshd的进程:
也有可能是更新系统包的时候自动按照原来文件的安装记录,系统自己安装了服务,鬼知道啊。
让我们登陆一下,试试。这里用的是SecureCRT在windows7下访问Ubuntu的,win7下没有超级终端。SecureCRT也非常好用,也可用作串口工具,看看运行效果:
可以相互ping通,服务也正常,但是依然无法连接,继续……我觉得再reboot一下。
额,又二了,什么也没改,在SecureCRT新建一个连接就OK了。看图:
OK,到这里了……谢谢阅读。欢迎转载。Jun奉上。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
如果出现ssh: connect to host XX.XX.XX.XX port 22: Connection refused
请按如下步骤检查:
1、目标主机的ssh server端程序是否安装、服务是否启动,是否在侦听22端口;
检查方法:
june@ubuntu:~$ ps -ef|grep sshd
root 2859 1 020:29 ? 00:00:00 /usr/sbin/sshd -D
root 2901 2859 020:31 ? 00:00:00 sshd: june[priv]
june 2971 2901 020:31 ? 00:00:00 sshd:june@pts/1
june@ubuntu:~$
其中/usr/sbin/sshd为ssh clinet/server中server端的守护进程,如果上述结果中没有sshd出现,那么可能就是你的server端程序没有安装(Ubuntu 11.04 默认没有安装ssh server,只安装了ssh client),或者sshd服务没有启动,这两者的解决办法请见下文详述。
2、是否允许该用户登录;
3、本机是否设置了iptables规则,禁止了ssh的连入/连出;
检查方法:
june@ubuntu:~$sudo iptables -L
[sudo] password for june:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
june@ubuntu:~$
4、查查ssh的配置文件
ls -lrt /etc/ssh
针对第一点没有安装ssh server或者没开启sshd的用户,可以参考这篇:
Ubuntu如何开启SSH服务
SSH分客户端openssh-client和openssh-server
如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-server:sudo apt-get install openssh-server然后确认sshserver是否启动了:
ps -e |grep ssh
如果看到sshd那说明ssh-server已经启动了。
如果没有则可以这样启动:sudo /etc/init.d/ssh start
ssh-server配置文件位于/etc/ssh/sshd_config,在这里可以定义SSH的服务端口,默认端口是22,你可以自己定义成其他端口号,如222。
然后重启SSH服务:
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start
然后使用以下方式登陆SSH:
ssh [email protected] tuns为192.168.0.100机器上的用户名,需要输入密码。
断开连接:exit
完整过程如下所示:
june@~ 19:57:22>
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOINGSOMETHING NASTY!
Someone could be eavesdropping on you rightnow (man-in-the-middle attack)!
It is also possible that a host key hasjust been changed.
The fingerprint for the RSA key sent by theremote host is
7f:57:35:cf:23:86:12:cb:e5:51:7a:a3:57:71:15:71.
Please contact your system administrator.
Add correct host key in/home/june/.ssh/known_hosts to get rid of this message.
Offending RSA key in/home/june/.ssh/known_hosts:8
RSA host key for 192.168.1.101 has changedand you have requested strict checking.
Host key verification failed.
june@~ 20:30:55>
june@~ 20:31:36>
rm /home/june/.ssh/known_hosts
june@~ 20:31:46>
The authenticity of host '192.168.1.101(192.168.1.101)' can't be established.
ECDSA key fingerprint is50:9b:b7:15:c0:57:aa:d6:22:7c:97:40:6e:49:6e:94.
Are you sure you want to continueconnecting (yes/no)? yes
Warning: Permanently added '192.168.1.101'(ECDSA) to the list of known hosts.
[email protected]'s password:
Welcome to Ubuntu 11.04 (GNU/Linux2.6.38-8-generic i686)
*Documentation: https://help.ubuntu.com/
Last login: Sat Jun 25 12:38:24 2011
june@ubuntu:~$
转载地址:http://hi.baidu.com/leejun_2005/item/bfc0ded296cb8ebf32db907e
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以上都是参考,最终版本:
ubuntu默认并没有安装ssh服务,如果通过ssh链接ubuntu,需要自己手动安装ssh-server。判断是否安装ssh服务,可以通过如下命令进行:
$ ssh localhost
ssh: connect to host localhost port 22: Connection refused
如上所示,表示没有还没有安装,可以通过apt安装,命令如下:
$ sudo apt-get install openssh-server
系统将自动进行安装,安装完成以后,先启动服务:
$ sudo /etc/init.d/ssh start
启动后,可以通过如下命令查看服务是否正确启动
$ ps -e|grep ssh
6212 ? 00:00:00 sshd
如上表示启动ok。注意,ssh默认的端口是22,可以更改端口,更改后先stop,
然后start就可以了。改配置在/etc/ssh/sshd_config下,如下所示。
$ vi /etc/ssh/sshd_config
# Package generated configuration file
# See the sshd(8) manpage for details
# What ports, IPs and protocols we listen for
Port 22
最后,应该是连接的时候了。请看如下命令:
$ ssh exceljava@192.168.158.129
启动、停止和重启SSH:
sudo /etc/init.d/ssh start
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh restart
或者
sudo start ssh
sudo stop ssh
sudo restart ssh
卸载SSH
先停掉SSH服务:sudo stop ssh
然后:
apt-get remove openssh-server
apt-get purge openssh-server
sudo apt-get purge openssh-client
sudo apt-get remove openssh-client