# Remote-Anmeldung mit SSH-Schlüssel?

## Martux

Hallo! Ich administriere den Rechner von Bekannten über ssh & konsole.

Dort kümmere ich mich dann um updates usw.

Jetzt frage ich mich ob es möglich ist, mich dort automatisch mit einem ssh-Schlüssel anzumelden?

Wenn ja, wie generiere ich diesen? Brauche ich dann auf dem Zielrechner einen eigenen Anwender?

Wäre für Tipps dankbar.

----------

## bbgermany

Hi,

meinst du PublicKey Authentifizierung?

Wenn ja, dann ist das ganz einfach:

```

$ $ ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/home/user/.ssh/id_rsa): 

Enter passphrase (empty for no passphrase): 

Enter same passphrase again: 

Your identification has been saved in /home/user/.ssh/id_rsa.

Your public key has been saved in /home/user/.ssh/id_rsa.pub.

The key fingerprint is:

ab:30:0b:13:5f:02:14:43:cb:56:7a:e7:19:53:b5:8c user@host

```

dann kopieren

```

$ ssh-copy-id -i .ssh/id_rsa.pub user@remotehost

Password: 

Now try logging into the machine, with "ssh 'user@remotehost'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

```

und schon sollte das gehen. Alternative kann man auch dsa anstatt von rsa angeben. Debian möchte das zum Beispiel so bei mir...

MfG. Stefan

----------

## Martux

Hmm, cool. Allerdings klappt der folgende Teil noch nicht:

```

ssh-copy-id -i .ssh/id_rsa.pub user@remotehost

```

Ich habe mir einen Extra-User dort angelegt. Allerdings scheint es Probleme mit dem Port zu geben (habe SSH über einen anderen als 22 laufen). Das sollte doch mit der Option -p gehen?!

Da kriege ich immer "connection refused".

Kann jetzt auch nicht weiter probieren da der Zielrechner offline ist.

----------

## bbgermany

Hi,

du kannst die id_{rsa,dsa}.pub auch nomal via scp kopieren und dann mit "cat idfile >> .ssh/authorized_keys" hineinkopieren.

MfG. Stefan

----------

## Martux

Klasse, das klappt schonmal ganz gut!

Allerdings kommt immer noch bei jedem login auf der Konsole:

```

The authenticity of host '[blablablubb.com] can't be established.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '[blablablubb.com] (RSA) to the list of known hosts.

```

Diese Meldung würde ich gerne loswerden, außerdem stört mich beim SSH-Login seit eh und je die Liste mit den "known hosts", sind ja dynamische IPs...

----------

## bbgermany

da wirste wohl nicht drum rum kommen.

MfG. Stefan

----------

## Martux

Ja, aber

```
The authenticity of host '[blablablubb.com] can't be established.
```

 sollte doch mit der Schlüssel-Geschichte erledigt sein?   :Shocked: 

----------

## AmonAmarth

 *Martux wrote:*   

> Klasse, das klappt schonmal ganz gut!
> 
> Allerdings kommt immer noch bei jedem login auf der Konsole:
> 
> ```
> ...

 

vielleicht kannst du in der known host list auch adress bereiche angeben wie zb XXX.YYY.0.0/255.255.255.0 womit alle ip adressen mit XXX.YYY.*.* freigegeben sein müssten.

----------

## Martux

Hmm, das halte ich für keine so gute Idee.

Toll wäre es, wenn man das an den Hostnamen vom Klienten binden könnte.

Habe mal im ssh manual geschaut aber nichts dazu gefunden.

----------

## think4urs11

verbindest du dich via IP oder via schnickschnack.dyndns.org?

----------

## Martux

Schon mit No-Ip.org. Sehe bei ständig wechselnden IPs sonst keine andere Möglichkeit (lasse mich aber gerne belehren, bin in Netzwerkdingen eher unbewandert).

----------

## think4urs11

Mittels StrictHostKeyChecking kannst du das Verhalten beeinflußen - allerdings mit der Gefahr einer MitM-attack wenn du nicht gerade den hostkey auswendig kannst.

Eine andere Variante wäre VerifyHostKeyDNS - setzt voraus das du dem DNS vertraust bzw. das dieser es überhaupt erlaubt den notwendigen Eintrag zu erstellen.

----------

## Martux

Think4UrS11:

Danke für die Zusatz-Info. Ich denke aber daß das etwas zuviel des Guten für meine polelige Homeuser-Anwendung ist.   :Very Happy:  Eigentlich war ich ja nur zu faul jedesmal das Passwort einzugeben. Mit den known hosts behelfe ich mir halt indem ich die Datei ab und an mal lösche.

Btw, man ssh_config hat noch dieses:

```

HostName

Specifies the real host name to log into.  This can be used to specify nicknames or abbreviations for hosts.  The default is the name given on the command line.  Numeric IP addresses are also permitted (both on the command line and in HostName specifications).

```

Ist das nicht evtl. was ich suche? Wenn ich es richtig verstehe können sich dann nur diese Computer einloggen? Muß ich bei Gelegenheit mal ausprobieren.

----------

## think4urs11

Nö.

Damit kannst du nur (via  ~/.ssh/config) erreichen das z.B. statt ssh really-long-hostname.evenlongerdomainname.net auch ein ssh foo genügt

----------

## Fauli

 *Martux wrote:*   

> Ich denke aber daß das etwas zuviel des Guten für meine polelige Homeuser-Anwendung ist.

 

Um das StrictHostKeyChecking abzuschalten, reicht aber schon ein: ssh -o StrictHostKeyChecking=no user@hostname

 *Martux wrote:*   

> Wenn ich es richtig verstehe können sich dann nur diese Computer einloggen?

 

Meinst du das? Per-Account Server Configuration (8.2.4.1 OpenSSH host access control)

----------

## Martux

Fauli: Das sieht interessant aus, muß erst ein wenig damit rumprobieren. Danke für den Link. Ich melde mich auf jeden Fall wenn das geht wie ich mir das vorstelle.

----------

