ubuntuusers.de

Verbindung über ssh herstellen

Status: Gelöst | Ubuntu-Version: Kubuntu 12.10 (Quantal Quetzal)
Antworten |

Moch

Anmeldungsdatum:
7. Oktober 2011

Beiträge: 85

Hallo,

Bitte entschuldigt den recht allgmeinen Titel, aber ich befürchte, dass sich hier noch mehr Fragen ergeben werden.

Wie bereits in einem anderen Topic erwähnt, musste ich kürzerlich unseren Gebäude-Server übernehmen, da ich offenbar der einzige bin, der beim Anblick eines Terminals nicht in Panik ausbricht. Leider kennt sich hier auch niemand anderes mit ssh oder Server aus, sodass ich ziemlich auf verloremen Posten stehe.

Von meinem Laptop konnte ich kürzlich eine Verbindung zum Server herstellen und mich einloggen (dazu hatte ich hier ein Topic). Nun wollte ich exakt diese Schritt auf einem Desktop-PC wiederholen, doch ich kriege absolut keine Verbindung hin.

Ich habe mir zunächst via "ssh-keygen" einen Schlüssel im Verzeichnis Home/.ssh/ generiert.

Der Aufruf "ssh -p <port> - i $HOME/.ssh/keydatei admin@<IP-Adresse>" führte zunächst zur gleichen Fehlermeldung, wie beim letzten Mal "permission denied (publickey)". Da sich das Problem bei letzten Mal auf fast magische Weise durch einen Systemneustart behoben hatte, habe ich das wieder versucht. Seither bekomme ich bei jedem Zugriffsversuch folgende Ausgabe

user@computer:~/.ssh# ssh -v -p <port> -i $HOME/.ssh/MasterAccess admin@ipAdresse
OpenSSH_6.0p1 Debian-3ubuntu1, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to ipadresse [ipadresse] port port.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file MasterAccess type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file MasterAccess-cert type -1
ssh_exchange_identification: Connection closed by remote host

Hinweis: Ich habe hier mal die IP-Adressen und co entfernt 😉

Einem Hinweis folgend habe ich mir die hosts.deny angeschaut. Diese besteht jedoch nur aus einem großen Kommentarblock

user@computer:~/.ssh$ cat /etc/hosts.deny
# /etc/hosts.deny: list of hosts that are _not_ allowed to access the system.                                                                                                                                                                
#                  See the manual pages hosts_access(5) and hosts_options(5).                                                                                                                                                                
#                                                                                                                                                                                                                                            
# Example:    ALL: some.host.name, .some.domain                                                                                                                                                                                              
#             ALL EXCEPT in.fingerd: other.host.name, .other.domain                                                                                                                                                                          
#                                                                                                                                                                                                                                            
# If you're going to protect the portmapper use the name "portmap" for the                                                                                                                                                                   
# daemon name. Remember that you can only use the keyword "ALL" and IP                                                                                                                                                                       
# addresses (NOT host or domain names) for the portmapper, as well as for                                                                                                                                                                    
# rpc.mountd (the NFS mount daemon). See portmap(8) and rpc.mountd(8)                                                                                                                                                                        
# for further information.                                                                                                                                                                                                                   
#                                                                                                                                                                                                                                            
# The PARANOID wildcard matches any host whose name does not match its                                                                                                                                                                       
# address.                                                                                                                                                                                                                                   
#                                                                                                                                                                                                                                            
# You may wish to enable this to ensure any programs that don't                                                                                                                                                                              
# validate looked up hostnames still leave understandable logs. In past                                                                                                                                                                      
# versions of Debian this has been the default.                                                                                                                                                                                              
# ALL: PARANOID  

Ich habe leider auch keinen physikalischen Zugang zum Server, sondern kann ausschließlich über SSH arbeiten. Zugang erhalte ich nur nach einem Antrag und wenn der Typ mit dem Schlüssel sich nach einer Woche mal aus dem Rechenzentrum herbemüht hat. Ich bin zwar Informatiker im Master-Studium, aber mit SSH kenne ich mich nicht aus (tut hier offenbar keiner...). Daher bitte bei den Vorschlägen / Lösungsmöglichkeiten auch "dumme" Vorschläge berücksichtigen, an die vielleicht sonst jeder denkt. Vielleicht habe ich das ja was wichtiges nicht gemacht...

Gruß Moch

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

Moch schrieb:

Ich habe mir zunächst via "ssh-keygen" einen Schlüssel im Verzeichnis Home/.ssh/ generiert.

Der Aufruf "ssh -p <port> - i $HOME/.ssh/keydatei admin@<IP-Adresse>" führte zunächst zur gleichen Fehlermeldung, wie beim letzten Mal "permission denied (publickey)".

Hast Du den öffentlichen Schlüssel im Anschluss auch auf den Server kopiert?

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Wohnort: Göttingen

Wie schaut denn deine /etc/ssh/shhd_config aus?

Ist das Anmelden per Passwort generell gesperrt? Falls ja, müsstest Du den neu generierten Schlüssel von deinenm Laptop aus auf den Server kopieren. Oder aber Du kopierst den SSH-Schlüssel deines Benutzers auf deinem Laptop auf deinen Desktop-PC.

Ist aber immer die Frage, wie die Zugriffsbeschränkungen gesetzt sind. Da gibt es bei SSH ziemlich viele Möglichkeiten.

Moch

(Themenstarter)

Anmeldungsdatum:
7. Oktober 2011

Beiträge: 85

Danke für die schnellen Antworten

Ja, die Anmeldung via Passwort ist generell gesperrt. Öhm, nein, ich habe den Schlüssel tatsächlich nicht kopiert, aber ich bin der Meinung, dass ich das beim letzten Mal auch nicht getan habe. Doofe Frage: Funktioniert denn der öffentliche Schlüssel eines anderen Rechners so einfach, wenn die Nutzernamen nicht gleich sind? Mein Laptop hat nämlich einen anderen Nutzernamen als mein dienstlicher Desktop-PC und ich habe in einer der beiden Schlüsseldateien zumindest den Nutzernamen und den Namen des Computers wiedergefunden.

Die shhd-config konnte hier nicht gefunden werden ← nanu? Fehlt mir hier ggf. ein Modul, welches unter Debian (System auf meinem Laptop) schon vorhanden ist?

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Wohnort: Göttingen

Also shhd_config war ein Tippfehler. Es war sshd_config gemeint.

Und es sollte funktionieren, wenn Du einfach den vorhandenen Schlüssel nimmst, auch wenn da ein anderer benutzer und Computername drinstehen.

Und warum das ganze funktionieren sollte, obwohl Du deine Schlüssel nicht kopiert hast, ist mir schleierhaft. Das kann eigentlich nicht funktionieren, denn wenn dein neuer Schlüssel nicht auf dem Server vorhanden ist, dann gibt es dort auch keine Möglichkeit, Dich per Schlüssel zu authentifizieren...

Moch

(Themenstarter)

Anmeldungsdatum:
7. Oktober 2011

Beiträge: 85

Hmm, dann bin ich mir nicht sicher, was ich da anders gemacht habe...meine Terminal-History gibt jedenfalls kein Hinweis darauf, dass ich irgendwas auf den Server kopiert hätte. Ich habe jetzt mal den Key vom Laptop auf den Desktop kopiert. Jedoch ereilt mich hier die gleiche Meldung wie oben.

Wie kann ich denn den Schlüssel auf den Server kopieren, wenn ich ohne einen Schlüssel nicht mal Zugriff habe?

Warum auch immer ich den Krams machen muss - ich soll normalerweise Software entwickeln und nicht mit irgendwelchen Servern spielen^^

Hier dann einmal entsprechend der Output:

                                                                                                                                                                          
user@computer:~/.ssh$ cat /etc/ssh/sshd_config                                                                                                                                                                                        
# Package generated configuration file                                                                                                                                                                                                       
# See the sshd_config(5) manpage for details                                                                                                                                                                                                 
                                                                                                                                                                                                                                             
# What ports, IPs and protocols we listen for                                                                                                                                                                                                
Port 22                                                                                                                                                                                                                                      
# Use these options to restrict which interfaces/protocols sshd will bind to                                                                                                                                                                 
#ListenAddress ::                                                                                                                                                                                                                            
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

Moch

(Themenstarter)

Anmeldungsdatum:
7. Oktober 2011

Beiträge: 85

Also, ich habe mich eben vertan - ich hatte den Schlüssel falsch kopiert. Jetzt habe ich wieder einen gültigen Schlüssel (der auf meinem Laptop funktioniert). Leider führt die Eingabe jetzt wieder zu folgendem Fehler:

user@computer:~/.ssh$ ssh -v -p port -i $HOME/.ssh./keyfile admin@ip
OpenSSH_6.0p1 Debian-3ubuntu1, OpenSSL 1.0.1c 10 May 2012
Warning: Identity file /home/user/.ssh./keyfile not accessible: No such file or directory.
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to ipadresse [ipadresse] port port.
debug1: Connection established.
debug1: identity file /home/dennis/.ssh/id_rsa type -1
debug1: identity file /home/dennis/.ssh/id_rsa-cert type -1
debug1: identity file /home/dennis/.ssh/id_dsa type -1
debug1: identity file /home/dennis/.ssh/id_dsa-cert type -1
debug1: identity file /home/dennis/.ssh/id_ecdsa type -1
debug1: identity file /home/dennis/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.5p1 Debian-6+squeeze3
debug1: match: OpenSSH_5.5p1 Debian-6+squeeze3 pat OpenSSH_5*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.0p1 Debian-3ubuntu1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 31:24:dd:34:73:8f:49:77:cc:ef:03:a5:a0:e6:90:6a
debug1: Host '[ipadresse]:port' is known and matches the RSA host key.
debug1: Found key in /home/user/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
Welcome to Metauniverse!
If you are not a part of it, please go away and enjoy your life!
Btw.
"Linux is like a Teepee, no Windows, no Gates and an Apache inside!"

---------------------------------

         (__) 
         (oo) 
   /------\/ 
  / |    ||   
 *  /\---/\ 
    ~~   ~~   
...."Have you mooed today?"...


debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/user/.ssh/id_rsa
debug1: Trying private key: /home/user/.ssh/id_dsa
debug1: Trying private key: /home/user/.ssh/id_ecdsa
debug1: No more authentication methods to try.
Permission denied (publickey).

Wieso hat das auf dem anderen Gerät funktioniert und hier nicht? Welchen Schritt habe ich vergessen?

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

Warning: Identity file /home/user/.ssh./keyfile not accessible: No such file or directory.

Der Pfad ist so ja vermutlich auch nicht richtig. Nimm da zumindest mal den Punkt hinter ssh weg.

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Wohnort: Göttingen

Hm, mag es vielleicht an folgender Warnung liegen?

Warning: Identity file /home/user/.ssh./keyfile not accessible: No such file or directory

Moch

(Themenstarter)

Anmeldungsdatum:
7. Oktober 2011

Beiträge: 85

Jau! Das wars... also wirklich. Ich habe eben (eben wegen der Pfadfehlermeldung) 10.274 Mal den Pfad geprüft und den Punkt dort nicht mal gesehen -.- Ich geh mal kurz weinen...

Besten dank für die Hilfe! Jetzt läuft's ☺ Hoffentlich kann ich das bald wem anders auf's Auge drücken und mich wieder meinen geliebten Frameworks und Simulationen zuwenden^^

Lieben Gruß und nochmals viele, vielen Dank für die geduldige Hilfe Moch

Antworten |