Jag försöker:
$ ssh eric@myserver
där myserver
är en maskin i intranätet. Jag kan pinga myserver
eller svara på HTTP på port 8080, etc, men när jag försöker ssh
, jag får
ssh: connect to host myserver port 22: Connection refused
Jag ”använder Ubuntu 10.
ps -ax
, som föreslås ger:
eric@Isaiah:~$ ps -ax | grep ssh Warning: bad ps syntax, perhaps a bogus "-"? See http://procps.sf.net/faq.html 1641 ? Ss 0:04 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session gnome-session 18376 pts/3 S+ 0:00 grep --color=auto ssh
Svar
Du har inte en SSH-demon kör. Om du tittar på utdata från kommandot ps ax
ser du att de enda två processerna med” ssh ”i beskrivningen är ssh-agent
(som gör något helt annat än sshd
) och grep ssh
-processen som du använder för att filtrera utdata från ps
.
Beroende på vilken distribution som är installerad kan du behöva installera eller köra ssh
-servern, vanligtvis kallad
eller sshd
beroende på din pakethanterare.
Svar
Steg för felsökning av ovanstående problem:
-
Använd
nmap
för att veta vilka portar som är öppna på den servern .nmap
är en portskanner. Eftersom det kan vara möjligt att ssh-servern körs på en annan port.nmap
ger dig en lista över öppna portar.$ nmap myserver
2. Nu kan du kontrollera vilken server som körs på en viss port. Antag att i porten på nmap är port 2424 öppen. Nu kan du välja vilken server som körs på 2424 med hjälp av verktyget nc (netcat).
$ nc -v -nn myserver portno
Antag att utgången från 2424-porten är:
myserver 2424 open SSH-2.0-OpenSSH_5.5p1 Debian-4ubuntu5
Detta betyder att ssh körs 2424.
Fortsätt ändra portnumret i kommandot ovan och kontrollera om alla portar som listas öppna med nmap.
Svar
Det betyder antingen att ssh-servern inte körs på den maskinen eller så att brandväggen inte tillåter att ssh går igenom. Du kan kontrollera om ssh körs med ”ps -ax | grep ssh”.
Kommentarer
Svar
tidigare två alternativ är bra. Du kan också använda argumenten -v
eller -vv
.
$ ssh -vv eric@myserver
Svar
Jag stod också inför detta problem, men i en VirtualBox-miljö, så för att lösa det måste vi ställa in IP-adressen för att vara i samma LAN segmentet; till exempel:
På min värdmaskin öppnar jag cmd
och skriver ipconfig
. Jag får 100.2.2.1 (till exempel).
Så i den virtuella maskinen måste vi ställa in VM-adressen i /etc/hosts
till ett värde som 100.2.2.3 , titta på det slutliga numret och studsa den virtuella maskinen, men innan den virtuella maskinen startas konfigurerar du nätverket i inställningarna för den virtuella maskinen, så vi måste ställa in nätverksadaptern i brygganslutning.
Allt detta är i en Solaris-miljö.
ps -ax
. Inte säker på vad det betyder.ssh
inte körs.sshd
-process, vilket innebär attsshd
inte körs. Lösningen är att startasshd
.