Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Как да влизам без парола в отдалечената си машина посредством SSH
  1. Как да влизам без парола в отдалечената си машина посредством SSH
EazySnatch
     
Автор  EazySnatch (13.05.2006 01:18)  съобщение до автора
Погледнат  7302 пъти  добави към любими
Оценка  добави коментар
Гласове  8  изпрати на приятел
Коментари  (0)  абонирай се за Unix
    Страница 1 / 1

 



Как да влизам без парола в отдалечената си машина посредством SSH

Статията ще разясни как можете да създадете SSH конекция посредсвом ключове и да осъществявате връзката си с тяхна помощ без да се налага да пишете пароли.

CODE
1
2
3
DISTRO:
[12:20]Debian@root/home/hristev#uname -sro
Linux 2.6.14 GNU/Linux

Предполагам,че имате инсталирани и функциониращи ssh clien & ssh server,защото няма да се спирам как се прави
това написал съм тема погледнете я ако не ви е ясно.

CODE
1
2
Debian@root~# ---> Локалната машина   (LOCAL)
Stabil@root~# ---> Отдалечената машина (REMOTE)

-Конфигуриране на LOCAL машината (записване на IP адреса като хост).
!!Това е по избор,но според мен олеснява много работата от постоянното писане на адреси.!!
Ще можете да не пишете "ssh x.x.x.x" където X.X.X.X e IP адрес, а да напишете "ssh remote"(в този случай REMOTE е stabil) Сега записваме IP адреса на ремот машината в hosts така:

CODE
1
[12:29]Debian@root/#echo "X.X.X.X stabil" >> /etc/hosts

!!!!!!! ВАЖНО !!!!!!! Внимавайте използвайте >> защото ако напишете само > ще изтриете цялото съдържание на файла и ще остане само въведеното от вас. Можете също да го отворите с любимият си текстов редактор. Файлът се намира в /etc/hosts

Сега просто напишете:

CODE
1
[12:35]Debian@root/#ssh stabil
и вече имате конекцията към х.х.х.х IP адреса

###############################
За да работи всичко както трябва е нужно да направите следните опции за SSH в LOCAL и REMOTE машините
###############################
LOCAL CONFIG ##
###############

CODE
1
2
3
4
5
6
7
[15:25]Debian@root~/.ssh#nano /etc/ssh/ssh_config      <------ LOCAL HOST (това е ssh client)

  1.   ConnectTimeout 0
  2.   StrictHostKeyChecking ask
  
IdentityFile ~/.ssh/identity                        <------ Махане на коментара
#  IdentityFile ~/.ssh/id_rsa
  1.   IdentityFile ~/.ssh/id_dsa

##########################

#### REMORE CONFIG

CODE
1
2
3
4
5
6
7
8
9
[15:25]Stabil@root~/.ssh#nano /etc/ssh/sshd_config     <------ REMOTE HOST (това е ssh server)
  1. Authentication:
LoginGraceTime 25
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys        <------- Махане на коментара

####################

Малко разяснения за ключовете. Kой метод и опции ще изберете ?
За тази статия ги разделям на два вида. Всичко останало е настройка на ключовете(всичко се върти около сигурността).
- с парола
- без прола
Няма да влизам в подробности кое кодиране е по-добро и как става,защото това не е идеята на статията, но все пак ще спомена.            

Ключовете се генерират посредством ssh-keygen - authentication key generation, management and conversion.

-t -- Имате възможност да изберете какъв тип ключ да се генерира RSA или DSA с -t опцията.
Аз използвам RSA(Rivest, Shamir, and Adelman) това е може би най-добрият алгоритъм той се използва в  PGP(Pretty Good Privacy).С него се работи лесно и има много добро управление на големи файлове с числа.

-f ПЪТ -- След като генерирате ключовете те по подразбиране се създават в ~/.ssh/id_rsa можете директно да зададете пътя с опцията -f аз сменям името на ~/.ssh/identity (това е по избор).Трябва само да изберете от /etc/ssh/ssh_config правилния
IdentityFile (както виждате по-горе аз съм избрал точно identity).

-b БИТОВЕ -- Ако искате можете да направите ключовете с различна големина.По подразбиране това е 1024 битово число като минималното е 512 а максималното 2048.Според мен 1024 е добре и едва ли ви е нужно по-голямо.


Ако оставите ключа с празна парола(когато ви поиска да създадете парола "Enter passphrase" просто натиснете ENTER)тогава  няма да бъдете попитан повече за нея и ще осъществявате коненция без пароли само със ключоветеДоло съм разяснил как да използвате ключ с парола и все пак да не се налага да е пишете,а системата си го прави автоматично.
Използвал съм ключове с ПАРОЛА.

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[15:23]Debian@root~/.ssh#ssh-keygen -t rsa                                   <----Генериране на ключовете
Generating public/private rsa key pair.
Enter file in which to save the key ([i]root[/i].ssh/id_rsa): [i]root[/i].ssh/identity <----Създаване на път по предпочитания
Enter passphrase (empty for no passphrase):                                  <----Въвеждане на парола !!!
Enter same passphrase again:
Your identification has been saved in [i]root[/i].ssh/identity.
Your public key has been saved in [i]root[/i].ssh/identity.pub.
The key fingerprint is:
e2:ad:4f:37:4d:31:85:08:37 root@Debian
[15:23]Debian@root~/.ssh#ls -l                              <---Виждате тук частния и публичния ключ
total 12
-
rw------- 1 root root 1743 2006-04-25 15:23 identity
-
rw-r--r-- 1 root root  393 2006-04-25 15:23 identity.pub
-
rw-r--r-- 1 root root  502 2006-04-25 10:05 known_hosts

Това е съдържанието на identity който е нашия частен ключ(разбира се не са реалните ми ключове):

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK
-Info: DES-EDE3-CBC,451D7223429AD8F2

hMT8HYWo55Nfk
+b4qgYHxiepuSL14hfvEoRccV6mR8DgUAbjOJpb+q1cyRpEb1Vz
Um2133YCJmqfsa7hcZgRJcrZFUbVbNN60OwX4pURwxclSSWJ03eN6WsT3RXwdlYs
o7zcAT8r5o3164QuNoSPuRkm1jkJEHCftYGze6rS1NP
+TjQRKGFrAEiAyYaop63w
7BtS32Yl8W6pQ4XYE76v8ZvFwVvzAKEPy8lY3E71B4iP830BjCunBvOdFOhs21a1
kU32R23lTaEvLy8xRpXpF
+jlJEwTuQsU9O9npRh0PcCDYaNqWATdbcKi94e6v2PD
sTPuasdh0
/978ffdpu03h02yWV+koj1DwWmZYpGcpuBAs7wpFcTxhUSyqbiJnnvb
4juwDWakV6C6V1JeikLokztxe3QbC2McqBmrYB2j8R2Kay/ygLJUgQHVyutetSUQ
Cz/Rw4xn6USDfoowbf6o+X+f8VexuNH5bSxslJROcm8Lb3KyBzTURCkejCYGHtoR
EGw
/iTsNf6T5hLl0FLzYf5rEFMkQ0+pdjwh8hbeGs8AenIDtDf+Cb6PHF0e0mRCh
2Scndkq7w9QTXWMjSFS5voE0xlhU700AZbDa/7sFGZx9gnxeEKkWbcRaJYVfR8/m
yDql+MsdaAP9IMk3LsP4aDL8/Xpaj2PsJh4urT4uYgaqtEOn5hLWMmV2wtKTot2VB
nBBNOKU4a
+as5212fPK+18nYVPVo1BjdgUcuXXlNTxsWXbEphkeNuCke1Q0sfcPIT
B6xGn
/z5lq4NRcx3R5RR3YcPfYsPRM4MT075gcRNa2c=
-----
END RSA PRIVATE KEY-----

Това е
identity.pub нашия публичен ключ:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA8+dj6rBqS3kAHzLJF1yqgVQExygSqR5IjnQAGQubjeUwbLUm/
FIqUD2t7vCDVz9xL1UsnD0OsWMmUNTwICkVSUafL8x6EC95OQ037HOHuXLrammZvqVZq+ztzMRsOUez9EAYk/
1smV3b090lc0pDi2IELr2aAkAVVpAuTG3BTSyDGdaa46i7Ts12qx2E4lwV/
FVp8DL11BuNXhoPOqEd2JIUWyluusrV08hBjyXm8JHMwv3xoLUAYCQbKV5q58sHZBRtMUL8xNcpC0P09HnPw3n
RxT63kHBbOLnH5c7i8FYjq82s
/1ahZkOpj1B5sE7UXh1FJRbuvxMm6cbK80TXVw== root@Debian


Незнам на кой как му е удобно затова ще покажа два начина за прехвърляне на публичния ключ.

######## Първи начин просто копираме и записваме ключа към authrozized_keys без da влизаме в системата ( за мен е по удобен)

CODE
1
2
3
4
[15:24]Debian@root~/.ssh#cat identity.pub | ssh -l root stabil "cat - >>.ssh/authorized_keys"
"Debian only for fat people's by Eazy-Snatch"    Eazy Snatch Crew Plovdiv
 Debian GNU
/Linux
Password
:                                                <----- Пишете парола,за да можете да изкопирате ключа

########

######## Втори начин (логване в системата)

CODE
1
2
3
4
5
6
7
8
9
10
[15:26]Debian@root~/.ssh#scp identity.pub stabil:~/.ssh/
"Debian only for fat people's by Eazy-Snatch"    Eazy Snatch Crew Plovdiv
 Debian GNU
/Linux
Password
:                                                <----- Пишете парола,за да може файла да се копира
identity.pub                                            100%   0     0.0KB/s   00:00
[15:26]Debian@root~/.ssh#ssh stabil
"Debian only for fat people's by Eazy-Snatch"    Eazy Snatch Crew Plovdiv
 Debian GNU
/Linux
Password
:                                                <----- Пишете парола
[15:30]Stabil@root~/.ssh#cat identity.pub >> authorized_keys

########

След като вече сме конфигурирали двата хоста и сме съсздали ключовете нека да преминем към осъществяването на връзка. Това е връзка с ключове които имат парола.


CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
[15:26]Debian@root~/.ssh#ssh stabil -v                    <--- Слагам -v за малко ясното.
OpenSSH_4.2p1 Debian-7, OpenSSL 0.9.8a 11 Oct 2005
debug1: Reading configuration data /etc/ssh/ssh_config
debug1
: Applying options for *
debug1: Connecting to stabil [X.X.1X7.1X] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file [i]root[/i].ssh/identity type 1
debug1: Remote protocol version 2.0, remote software version OpenSSH_3.8.1p1 Debian-8.sarge.4
debug1: match: OpenSSH_3.8.1p1 Debian-8.sarge.4 pat OpenSSH_3.*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.2p1 Debian-7
debug1: SSH2_MSG_KEXINIT sent
debug1
: SSH2_MSG_KEXINIT received
debug1
: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc 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
: Host 'stabil' is known and matches the RSA host key.
debug1: Found key in [i]root[/i].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
: SSH2_MSG_SERVICE_REQUEST sent
debug1
: SSH2_MSG_SERVICE_ACCEPT received

"Debian only for fat people's by Eazy-Snatch"    Eazy Snatch Crew Plovdiv
 Debian GNU
/Linux
debug1
: Authentications that can continue: publickey,keyboard-interactive
debug1: Next authentication method: publickey
debug1
: Offering public key: [i]root[/i].ssh/identity
debug1
: Server accepts key: pkalg ssh-rsa blen 277
debug1: PEM_read_PrivateKey failed
debug1
: read PEM private key done: type <unknown>
Enter passphrase for key '/root/.ssh/identity':        <------Тук въвеждаме паролата за ключовете(ТОВА Е ПАРОЛАТА ЗА СЪМИТЕ КЛЮЧОВЕ)
debug1: read PEM private key done: type RSA
debug1
: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US
Last
login: Tue Apr 25 14:55:08 2006 from ...
[15:23]Stabil@root~#                                <-------Вече сме в REMOTE машината

Как да направим така,че не трябва да пиша паролата всеки път!?
За това се използваме ssh-agent той ще изпише вашата парола когато тя бъде поискана.
Просто трябва да запишете паролата към съмия агент ето как става това:

CODE
1
2
3
4
5
6
7
[15:31]Debian@root~/.ssh#ssh-agent $BASH                      <--- Пускане на SSH-AGENT
[15:31]Debian@root~/.ssh#ssh-add                              <--- Add на ЧАСТНИЯ ключ
Enter passphrase for [i]root[/i].ssh/identity:                     <--- Парола на частния ключ (въвежда се само 1-н път)
Identity added: [i]root[/i].ssh/identity ([i]root[/i].ssh/identity)
[
15:31]Debian@root~/.ssh#ssh-add -l                           <--- Разглеждане кои ключове сме си записали
2048 e2:ad:4f:37:4d:31:85:08:37:ef [i]root[/i].ssh/identity (RSA)
[
15:32]Debian@root~/.ssh#ssh stabil                            <-- -Конекция без парола.

"Debian only for fat people's by Eazy-Snatch"    Eazy Snatch Crew Plovdiv
 Debian GNU/Linux
Last login: Tue Apr 25 15:23:07 2006 from ...
[15:26]Stabil@root~#                                             <--- REMOTE HOST

Eazy-Snatch
Валентин Христев





   


Ключови думи: unix Linux ssh private key


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008