Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: lawlessbg в Sep 18, 2008, 19:49



Титла: Ssh key authentication
Публикувано от: lawlessbg в Sep 18, 2008, 19:49
Здравейте,
Как мога да настроя, ssh да не допуска връзки от компютри, които нямат ключ, а ключа да нося в себе си например на флашка? И как да го генерирам. Ако има някакъв tutorial на български, ще съм благодарен за линкче, защото аз не успях да намеря отговори на тези въпроси горе.
Благодаря.


Титла: Ssh key authentication
Публикувано от: zeridon в Sep 18, 2008, 22:47
накратко ...
1) ssh-keygen -b 2048 -t rsa - това ще ти генерира публичен и частен ключ
2) на целевата машина touch ~/.ssh/authorized_keys
3) на целевата машина cat <името на ключа>.pub >> ~/.ssh/authorized_keys
4) vi /etc/ssh/ssd_config
RSAAuthentication yes
PubkeyAuthentication yes
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no
5) ssh -i <ime na klu4> user@mashina ...


Титла: Ssh key authentication
Публикувано от: lawlessbg в Sep 18, 2008, 23:34
Дава ми:
$ssh -i ~/.ssh/id_rsa user@machine
Permission denied (publickey).





Титла: Ssh key authentication
Публикувано от: senser в Sep 19, 2008, 00:00
това, което е дал зеридон е повече от достатъчно според мен, а и е на БГ :)

но ето ти един линк на ЕНГ - дори и само командите да видиш може да се ориентираш, вкл. и за правата над файловете


Титла: Ssh key authentication
Публикувано от: lawlessbg в Sep 22, 2008, 00:06
Благодаря.Бях забравил на Gentoo HOWTO-тата колко са добри.


Титла: Ssh key authentication
Публикувано от: lawlessbg в Oct 02, 2008, 18:28
Нещо не мога да се оправя. Дава ми:
Примерен код
Permission denied (publickey).

Ето ми ги настройките:
Примерен код

# Package generated configuration file
# See the sshd(8) 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
#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 no

# 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

UsePAM yes


Титла: Ssh key authentication
Публикувано от: senser в Oct 02, 2008, 20:34
вдигни LogLevel-a на DEBUG
и дай изхода от лога на сървъра при опита за логин


Титла: Ssh key authentication
Публикувано от: tarator в Oct 03, 2008, 00:17
Permission-ите на ~/.ssh/authorized_keys трябва да бъдат 0600 (т.е. никой освен потребителя да не може да чете или пише), иначе ssh ще откаже да се връзва с ключове.

chmod 0600 ~/.ssh/authorized_keys

П.П. ~/.ssh май трябва да бъде 0700.





Титла: Ssh key authentication
Публикувано от: lawlessbg в Oct 03, 2008, 19:50
Примерен код
$ ssh -i .ssh/id_rsa [EMAIL=lawlessbg@192.168.1.100]lawlessbg@192.168.1.100[/EMAIL]
Warning: Identity file .ssh/id_rsa not accessible: Permission denied.
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
RSA key fingerprint is 8f:de:14:21:f5:a6:4f:dd:1a:36:45:44:d5:4f:6c:3e.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': yes
Failed to add the host to the list of known hosts (/home/lawlessbg/.ssh/known_hosts).
Permission denied (publickey).

Това стана с права 0600.
Иначе кой е лог фаила?


Титла: Ssh key authentication
Публикувано от: romeo_ninov в Oct 03, 2008, 21:05
А ти собственик ли си на директорията .ssh и файловете в нея?


Титла: Ssh key authentication
Публикувано от: nedpetko в Oct 04, 2008, 09:18
Промени в sshd_config тази настройка и пробвай
Примерен код
ChallengeResponseAuthentication yes

Намерих решението тук





Титла: Ssh key authentication
Публикувано от: sdr в Oct 04, 2008, 12:08
Примерен код

sdr@sdrlt ~ $ ll -d .ssh
drwx------ 2 sdr nashte 136 13 ное  2006 .ssh
sdr@sdrlt ~ $ ll  .ssh
общо 12K
-rw------- 1 sdr nashte 1,7K 13 ное  2006 id_rsa
-rw------- 1 sdr nashte  390 13 ное  2006 id_rsa.pub
-rw------- 1 sdr nashte 3,8K 15 фев  2008 known_hosts
sdr@sdrlt ~ $ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1y...............
sdr@sdrlt ~ $ ssh sdr@gsmr
Last login: Sat Oct  4 00:16:55 2008 from ...........
[sdr@mysql:~]$ ll -d .ssh
drwx------  2 sdr nashte 4096 Sep  6 19:03 .ssh
[sdr@mysql:~]$ ll  .ssh
total 12
-rw-r--r--  1 sdr nashte  785 Sep  6 19:03 authorized_keys
-rw-r--r--  1 sdr nashte 6225 Sep  4 20:46 known_hosts
[sdr@mysql:~]$ cat .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvP..................






Титла: Ssh key authentication
Публикувано от: lawlessbg в Oct 04, 2008, 21:24
С това:
Примерен код
ChallengeResponseAuthentication yes

ми влиза с обикновена парола, паролата на моя юзър.
А иначе пак същия проблем ми дава:
Примерен код
Permission denied (publickey).

Не знам как се казва лог файла. Той трябва да е в /var/log/ , нали?
Предполагам, че ако го прочета ще знам поне каде е проблема.





Титла: Ssh key authentication
Публикувано от: lawlessbg в Oct 04, 2008, 22:08
Ето какво ми пише в auth.log:
Примерен код
Oct  4 22:03:12 localhost sshd[2655]: debug1: rexec start in 5 out 5 newsock 5 pipe 7 sock 8
Oct  4 22:03:12 localhost sshd[2433]: debug1: Forked child 2655.
Oct  4 22:03:12 localhost sshd[2655]: debug1: inetd sockets after dupping: 3, 3
Oct  4 22:03:12 localhost sshd[2655]: Connection from 127.0.0.1 port 39216
Oct  4 22:03:12 localhost sshd[2655]: debug1: Client protocol version 2.0; client software version OpenSSH_5.1p1 Debian-2
Oct  4 22:03:12 localhost sshd[2655]: debug1: match: OpenSSH_5.1p1 Debian-2 pat OpenSSH*
Oct  4 22:03:12 localhost sshd[2655]: debug1: Enabling compatibility mode for protocol 2.0
Oct  4 22:03:12 localhost sshd[2655]: debug1: Local version string SSH-2.0-OpenSSH_5.1p1 Debian-2
Oct  4 22:03:15 localhost sshd[2655]: debug1: PAM: initializing for "lawlessbg"
Oct  4 22:03:15 localhost sshd[2655]: debug1: PAM: setting PAM_RHOST to "localhost"
Oct  4 22:03:15 localhost sshd[2655]: debug1: PAM: setting PAM_TTY to "ssh"
Oct  4 22:03:15 localhost sshd[2655]: debug1: do_cleanup
Oct  4 22:03:15 localhost sshd[2655]: debug1: PAM: cleanup


Титла: Ssh key authentication
Публикувано от: Hapkoc в Oct 04, 2008, 22:10
На RedHat (и подобни) е /var/log/secure.
На Debian (и подобни) мисля, че е /var/log/auth.log.

За най-сигурно си провери /etc/syslog.conf.


Титла: Ssh key authentication
Публикувано от: nedpetko в Oct 04, 2008, 22:30
В Дебиан е /var/log/auth.log
А спрял ли си идентификацията с парола?
Това което ти си го написал го пробвах снощи и ми даваше същите грешки а днес сутринта това което ти написах тръгна. Също така това което ти написа tarator е вярно - не се приемат ключове с права различни от 600.
Обаче сега заспивам пред компа и повече не ми се занимава.
До утре!


Титла: Ssh key authentication
Публикувано от: nedpetko в Oct 16, 2008, 22:35
С риск да стана досаден, но поради факта, че явно имаше недоразбрали какво е написал zeridon - един от които бях аз, бихте ли ми позволили следната редакция?
Благодаря предварително!
Цитат (zeridon @ Сеп. 18 2008,23:47)
накратко ...
1) ssh-keygen -b 2048 -t rsa # - това ще ти генерира публичен 'id_rsa.pub' и частен ключ 'id_rsa' върху работната машина
2) scp id_rsa.pub user@celeva.machina:/home/user/
2.1) touch ~/.ssh/authorized_keys # на целевата машина
3) cat id_rsa.pub >> ~/.ssh/authorized_keys # на целевата машина - тук се използва името на публичния ключ
3.2) chmod 600 ~/.ssh/authorized_keys
4) vi /etc/ssh/sshd_config
Примерен код
RSAAuthentication yes
PubkeyAuthentication yes
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no

4)/etc/init.d/ssh restart
5) ssh -i id_rsa user@celeva.mashina # тук се използва частния ключ

След известен период на леко зачитане и тестване по метода - проба грешка разбрах, че бъркам някъде генерално.  :(
Целева машина - това е т.нар. отдалечен компютър.
Работна машина е тази на която седим.
Ако съм сгрешил някъде моля поравете ме.

P.S. Няма нужда да се използва цитирана от мен опция:
Примерен код
ChallengeResponseAuthentication yes