2009年9月7日月曜日

Connect ssh from windows without password

Chances are you have done some/none/all of the following:

  • opened up puttygen.exe
  • generated a key after wiggling your mouse
  • entered a strong passphrase
  • saved the public key to something like
    pubkey
  • saved the private key to something like
    privatekey.ppk
  • moved your public key up to the server
  • (maybe even) converted the format of the key from putty to openssh with something like
    ssh-keygen -if pubkey > pubkey_openssh_format
  • changed some permissions like
    chmod 700 .ssh
  • added your pubkey to the authorized_keys file with something like
    cat pubkey >> .ssh/authorized_keys
  • changed some more permissions like
    chmod 600 authorized_keys
  • changed your putty settings under "connection > SSH > auth" to use
    privatekey.ppk
  • tried to connect and...

"Server refused our key"

Well - from what I have read that's supposed to work... but it didn't work for you did it?

Your problem has nothing to do with how well you followed these well documented procedures for getting ssh keys to work.
The solution to the problem is...
(brace yourself, its really simple) to try generating the keys on the server (unix, linix, bsd etc.) instead of the client (i.e. in windows).

Try the following:

  • ssh to your server using good old user name and password
  • do check permissions on your ~/.ssh folder and make sure to
    chmod 700 .ssh

    if they are wrong

  • do check permissions on your ~/.ssh/authorized_keys file and make sure to
    chmod 600 authorized_keys

    if they are wrong

  • generate the keys on the server with something like
    ssh-keygen -t dsa

    (or rsa - read the man pages if your don't know how to use ssh-keygen

  • accept the file names it wants to use
  • enter a strong passphrase
  • add the pub key to the authorized_keys file with something like
    cat id_dsa.pub >> .ssh/authorized_keys
  • copy the private key (id_dsa) to your local windows machine (use winscp or sftp or some such tool)
  • NOW open puttygen.exe
  • under actions select "load" and load the id_dsa file
  • enter the passphrase you set when you generated the key on the server. Puttygen will now convert the key to something that putty will understand
  • save that file to something like
    pivatekey.ppk
  • NOW change your putty settings under "connection > SSH > auth" to use
    privatekey.ppk
  • NOW try and connect
  • enter the passphrase when prompted
  • pat yourself on the back. You're connected to the server (I hope)

0 件のコメント: