सवाल मैं पासवर्ड-कम एसएसएच लॉगिन कैसे स्थापित कर सकता हूं?


मैं हर समय पासवर्ड दर्ज किए बिना एसएसएच के माध्यम से रिमोट में लॉगिन करने में सक्षम होना चाहता हूं।

  • मैं इसे किस तरह से सेट अप करूं?
  • पासवर्ड-कम सत्र निष्पादित करने के लिए एक अलग कमांड आवश्यक है?

226
2018-06-04 17:24


मूल


क्या आप openssh का उपयोग कर रहे हैं? (यदि ऐसा है तो यह आसान है;)) - Rinzwind
@Rinzwind, ओपनएसएसएच पहले से ही पूर्वस्थापित होने पर मालिकाना संस्करण क्यों प्राप्त करना परेशान करेगा? - Oxwivi
मैं assuptions करने की कोशिश नहीं करते;) - Rinzwind
ध्यान दें कि इसे एक खराब सुरक्षा अभ्यास माना जाता है, और कुछ वितरण इसे बॉक्स से बाहर कर देते हैं। मैं निश्चित नहीं हूं, लेकिन यह संभव है कि आपको सक्षम करने की आवश्यकता होगी PermitRootLogin में /etc/ssh/sshd_config इस काम को करने के लिए। - Kevin
@ केविन, कृपया स्वयं को स्पष्ट करें। हम पासवर्ड के बिना ssh-ing के बारे में बात कर रहे हैं, जो आमतौर पर एक है अच्छा अभ्यास। क्या आपका मतलब रूट खोल में ssh-ing है? यह इस सवाल से ढंका नहीं है। - Oxwivi


जवाब:


उत्तर

इस आदेश का निष्पादन करें:

ssh-keygen

फिर आपको अपने सर्वर पर नई कुंजी कॉपी करने की आवश्यकता होगी:

ssh-copy-id user@host
## or if your server uses custom port no:
ssh-copy-id "user@host -p 1234"

कुंजी की प्रतिलिपि बनाने के बाद, सामान्य रूप से मशीन में एसएसएच:

ssh user@host

अब आप कमांड को निष्पादित करने वाली विशेष मशीन से पासवर्ड दर्ज किए बिना लॉगिन कर सकते हैं।

उदाहरण

not-marco@rinzwind-desktop:~$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/not-marco/.ssh/id_rsa): 
Created directory '/home/not-marco/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/not-marco/.ssh/id_rsa.
Your public key has been saved in /home/not-marco/.ssh/id_rsa.pub.
The key fingerprint is:
b1:25:04:21:1a:38:73:38:3c:e9:e4:5b:81:e9:ac:0f not-marco@rinzwind-desktop
The key's randomart image is:
+--[ RSA 2048]----+
|.o= . oo.        |
|*B.+ . .         |
|*=o .   o .      |
| = .     =       |
|. o     S        |
|E.               |
| o               |
|  .              |
|                 |
+-----------------+

not-marco@rinzwind-desktop:~$ ssh-copy-id not-marco@server
not-marco@server's password: 
Now try logging into the machine, with "ssh 'not-marco@server'", and check in:

  ~/.ssh/authorized_keys

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

व्याख्या

यह मानता है कि आप पहले ही एसएसएच के माध्यम से अपने सर्वर से सफलतापूर्वक कनेक्ट कर सकते हैं।

आपको एक एसएसएच कीपैयर उत्पन्न करने की आवश्यकता होगी जो आपको पासवर्ड का उपयोग किए बिना स्वयं के रूप में पहचानने की अनुमति देगा। यदि आप चाहें तो आप पासकोड के साथ चाबियाँ सुरक्षित करने का विकल्प चुन सकते हैं, लेकिन इसे पूरी तरह से पासवर्ड-कम एसएसएच एक्सेस की अनुमति देने के लिए खाली छोड़ दिया जा सकता है।

  1. पहले चलकर अपना एसएसएच कीपैयर बनाएं ssh-keygen यह एक बना देगा id_rsa तथा id_rsa.pub फ़ाइल। pub फ़ाइल सर्वर पर क्या चलती है, निजी कुंजी (id_rsa) वह है जो आपके साथ रहता है और यह है कि आप स्वयं को कैसे पहचानते हैं।
  2. इसके बाद सार्वजनिक सर्वर को अपने सर्वर पर कॉपी करें ssh-copy-id user@server मशीन को आपके दूरस्थ उपयोगकर्ता और सर्वर के साथ मशीन DNS नाम या आईपी पते के साथ बदलना। यह आपके एसएसएच पासवर्ड के लिए संकेत देगा, इसे दर्ज करें और यदि सभी सफलतापूर्वक पूर्ण हो जाएंगे तो आप मशीन तक पहुंच पाएंगे ssh user@server पासवर्ड की आवश्यकता के बिना।

संदर्भ


231
2018-06-04 17:36



@Oxwivi यह उत्तर ऐसा करने का अधिक सही तरीका है - लेकिन यह लंबा लगता है। आपको बस इतना करना है कि टाइप करें ssh-keygen ऑन-स्क्रीन निर्देशों का पालन करें, फिर टाइप करें ssh-copy-id user@server रिमोट मशीन के साथ अपने रिमोट यूज़र और सर्वर के साथ उपयोगकर्ता को बदलना - Marco Ceppi♦
मुझे यह त्रुटि थी "एजेंट ने कुंजी का उपयोग करने पर हस्ताक्षर करने में विफलता स्वीकार की।" हर बार जब इस प्रक्रिया का पालन करने के बाद लॉगिन करने का प्रयास किया जाता है। समाधान स्थानीय मशीन पर "> ssh-add" चलाने के लिए था और अब मैं अपेक्षित के रूप में दूरस्थ मशीन पर लॉग इन कर सकता हूं। - jmbouffard
यह उल्लेख करना महत्वपूर्ण है कि यदि आपको @ सर्वर के लिए कस्टम पोर्ट का उपयोग करने की आवश्यकता है, तो आपको इसके साथ ऐसा करने की आवश्यकता है: ssh-copy-id "not-marco@127.0.0.1 -p 1234"। - s3m3n
@Rinzwind: क्या इसका मतलब यह है कि अगर मैं passwd प्रमाणीकरण अक्षम करता हूं और केवल कुंजी प्रमाणीकरण की अनुमति देता हूं तो मैं किसी अज्ञात क्लाइंट / मशीन से अपने सर्वर पर प्रमाणित नहीं कर सकता। सर्वर से संवाद करने के लिए ज्ञात / कॉन्फ़िगर किए गए क्लाइंट के लिए जेनरेट की गई निजी कुंजी का उपयोग करके अज्ञात मशीन से लॉगिन करने की अनुमति देने का कोई तरीका है? मेरा मतलब है, क्या यह निजी कुंजी पोर्टेबल है और आपातकालीन जरूरतों के मामले में, अन्य मशीनों से सर्वर पर प्रमाणित करने के लिए इस्तेमाल किया जा सकता है ?? - Rajat Gupta
लेकिन सर्वर अभी भी पासवर्ड मांग रहा है ,, - lerner


निम्न आदेश टाइप करें:

  1. ssh-keygen 

    दबाएँ दर्ज जब तक आप संकेत प्राप्त नहीं करते हैं तब तक कुंजी

  2. ssh-copy-id -i root@ip_address

    (यह एक बार मेजबान प्रणाली के पासवर्ड के लिए पूछेगा)

  3. ssh root@ip_address

अब आप बिना किसी पासवर्ड के लॉगिन कर सकते हैं।


30
2018-05-17 08:45





जिस तरह से मैं आमतौर पर ऐसा करता हूं:

ssh-keygen -t rsa

(जब पासवर्ड के लिए संकेत दिया जाता है, तो इसे खाली छोड़ दें)

फिर: cat ~/.ssh/id_rsa.pub | ssh username@hostname 'cat >> .ssh/authorized_keys'

(इसके लिए अधिकृत होस्टनाम पर होम निर्देशिका में फ़ोल्डर .ssh होना आवश्यक है, इसमें अधिकृत_की फ़ाइल के साथ)

बेशक, वांछित उपयोगकर्ता नाम, और इच्छित होस्टनाम या आईपी पते के साथ होस्टनाम के साथ उपयोगकर्ता नाम बदलें

इसके बाद, बस उस बॉक्स में एसएसएच की तरह आप का उपयोग किया जाता है।


21
2018-06-04 18:22



किस बारे में touch तथा chmod रिनज़विंड के जवाब में आदेश? - Oxwivi
आपको chmod करने की आवश्यकता होगी .ssh/authorized_keys 0600 पर फ़ाइल करें या यह काम नहीं करेगा - Marco Ceppi♦
यह वास्तव में मदद करता है क्योंकि मैं अपने सर्वर पर रूट के लिए काम करने के लिए ssh-copy-id नहीं प्राप्त कर सका। यह उस स्थिति में जड़ होना चाहिए जहां बैकअपपीसी (या कोई अन्य डिमन) किसी अन्य मशीन पर ssh करने की आवश्यकता है। - Adam


मैं आमतौर पर उपयोग करता हूं sshpass इसके लिए, इसे स्थापित करें sudo apt-get install sshpass और इस तरह इसका इस्तेमाल करें

sshpass -p 'password' ssh your_username@your_server

18
2017-12-06 17:26



एसएसएच कुंजी का उपयोग क्यों नहीं करें? - enzotib
यह "क्यों नहीं" स्थिति नहीं है, यह अभी भी कुंजी जोड़ने के बिना सही काम करता है, यह सिर्फ एक और तरीका है जो मैं कहूंगा। - Bruno Pereira
Sshpass पर जानकारी के लिए धन्यवाद, इससे पहले कभी नहीं सुना। - Panther
एसएसएच कुंजी प्रश्न के "सही" उत्तर हैं, लेकिन sshpass मामलों में एक बहुत ही उपयोगी हैक जब आप रिमोट सर्वर पर प्रमाणीकरण विधि नहीं बदल सकते हैं! - Jacob Krall
यह बहुत खतरनाक है, आप bash_history में रखेंगे या मेजबानों के लिए जो भी सादे पासवर्ड आप कनेक्ट कर रहे हैं .. - kappa


यह समाधान विशेष रूप से उपयोग करने वाले उपयोगकर्ताओं के लिए है विंडोज सेवा मेरे ssh क्लाउड छवियों सहित उनकी रिमोट मशीनों में एडब्ल्यूएस क्लाउड तथा जीसीई क्लाउड


9
2017-11-20 09:07





पासवर्ड प्रमाणीकरण अक्षम करें

चूंकि एसएसएच सर्वर वाले बहुत से लोग कमजोर पासवर्ड का उपयोग करते हैं, कई   ऑनलाइन हमलावर एक एसएसएच सर्वर की तलाश करेंगे, फिर अनुमान लगाना शुरू करें   यादृच्छिक रूप से पासवर्ड। एक हमलावर एक में हजारों पासवर्ड आज़मा सकते हैं   घंटा, और अनुमान लगाया कि सबसे मजबूत पासवर्ड भी पर्याप्त समय दिया गया है।   अनुशंसित समाधान पासवर्ड के बजाय एसएसएच कुंजी का उपयोग करना है। के रूप में होना   सामान्य एसएसएच कुंजी के रूप में अनुमान लगाने में कठिनाई होती है, एक पासवर्ड में होना होगा   634 यादृच्छिक पत्र और संख्याएं। यदि आप हमेशा लॉग इन करने में सक्षम होंगे   एक एसएसएच कुंजी के साथ आपका कंप्यूटर, आपको पासवर्ड अक्षम करना चाहिए   प्रमाणीकरण पूरी तरह से।

यदि आप पासवर्ड प्रमाणीकरण अक्षम करते हैं, तो यह केवल संभव होगा   उन कंप्यूटरों से कनेक्ट करें जिन्हें आपने विशेष रूप से अनुमोदित किया है। यह बड़े पैमाने पर   आपकी सुरक्षा में सुधार करता है, लेकिन आपके लिए कनेक्ट करना असंभव बनाता है   अपने कंप्यूटर को किसी पीसी के पूर्व-अनुमोदन के बिना किसी मित्र के पीसी से, या   जब आप गलती से अपनी कुंजी हटाते हैं तो अपने लैपटॉप से।

आपके पास पासवर्ड प्रमाणीकरण अक्षम करने की अनुशंसा की जाती है जब तक कि आपके पास न हो   विशिष्ट कारण नहीं है।

पासवर्ड प्रमाणीकरण को अक्षम करने के लिए, निम्न पंक्ति को देखें   आपकी sshd_config फ़ाइल:

#PasswordAuthentication yes

इसे इस तरह दिखने वाली रेखा से प्रतिस्थापित करें:

PasswordAuthentication no

एक बार जब आप फ़ाइल सहेज लेते हैं और अपना एसएसएच सर्वर पुनः प्रारंभ कर देते हैं, तो आप   लॉग इन करते समय पासवर्ड के लिए भी नहीं पूछा जाना चाहिए।

https://help.ubuntu.com/community/SSH/OpenSSH/Configuring#disable-password-authentication


7
2018-02-15 01:10



यह सबसे बुनियादी सही उत्तर है लेकिन सुरक्षा के लिए अच्छा है! रूट लॉगिन भी अक्षम करें एक और अच्छा है - FreeSoftwareServers
कर देता है PasswordAuthentication no सभी उपयोगकर्ताओं को प्रभावित करते हैं? यदि नहीं, तो मैं इसे सामान्य उपयोगकर्ताओं के लिए कैसे बंद कर सकता हूं लेकिन जब मैं इसका परीक्षण कर रहा हूं तो इसे रूट के लिए अपरिवर्तित छोड़ दें? मैं वास्तव में इसे foobar नहीं करना चाहता हूँ और खुद को पूरी तरह से बंद कर देना चाहता हूँ। - Adam
एक एसएसएच सत्र खुला रखें ताकि आप इसे वापस बदल सकें। आप पासवर्ड और रूट को अक्षम करना चाहते हैं। हाँ, आप इसे फ्यूबर कर सकते हैं। मत करो;) - Thufir
एसएसएच के दौरान, मुझे एक त्रुटि है Permission denied (publickey). साथ में PasswordAuthentication no। मुझे क्या करना चाहिए क्या मैं बदलता हूँ PasswordAuthentication no एक और मेजबान पर? - ParisaN


यदि आप हमारी नई बनाई गई सार्वजनिक कुंजी का उपयोग करके सार्वजनिक / प्रोजेक्ट कीपैयर बनाते हैं और लॉग इन करते हैं, तो आपको अपना पासवर्ड टाइप करने की आवश्यकता नहीं होगी। आपकी कुंजी-अंगूठी और / या एसएसएच एजेंट की कॉन्फ़िगरेशन के आधार पर आपको अपनी कुंजी को पासफ्रेज़ से सुरक्षित रखने की आवश्यकता हो सकती है।

यहां कई में से एक है छोटा कैसेतुम्हारे लिए है इस विधि की सुरक्षा के लिए यह महत्वपूर्ण महत्व है कि जेनरेट की गई निजी कुंजी निजी बनी हुई है! आपको इसे कभी भी किसी के साथ साझा नहीं करना चाहिए या किसी भी क्षमता में इसका उपयोग नहीं करना चाहिए।

यह आदेश एक उचित मजबूत कुंजी उत्पन्न करता है ~/.ssh/:

ssh-keygen -b 4096

में ~/.ssh/ आपको अपनी सार्वजनिक कुंजी मिल जाएगी id_rsa.pub। इसकी सामग्री को आपके सर्वर में जोड़ा जाना चाहिए authorized_keys एक परिवहन योग्य मीडिया (पेन ड्राइव) के माध्यम से या सर्वर पर पासवर्ड प्रमाणीकरण सक्षम करने के बाद, फिर से उपयोग करके फ़ाइल ssh-copy-id ~/.ssh/id_rsa.pub username@server और फिर इसे फिर से अक्षम कर रहा है।

यदि आपने पासफ्रेज़ (पहले चरण में) के साथ अपनी कुंजी को सुरक्षित करना चुना है, तो आप इसका उपयोग कर सकते हैं ssh-agent या उबंटू कीरिंग स्थानीय रूप से उस मोटे को सुरक्षित करने के लिए ताकि आपको इसे हर समय टाइप न करना पड़े।


4
2018-06-04 17:32





पासवर्ड देने के बिना रिमोट लॉगिन / कॉपी

आवेदन ssh तथा scp रिमोट लॉगिन और रिमोट कॉपी के लिए, क्रमशः, आपको पासवर्ड देने के बिना रिमोट होस्ट के साथ संवाद करने की अनुमति देता है। इसके लिए आपको नीचे वर्णित एक प्रमाणीकरण प्रक्रिया का पालन करना आवश्यक है। क्लाइंट द्वारा हमारा मतलब है कि जिस मशीन पर आप बैठे हैं और सर्वर द्वारा हमारा मतलब है कि आप जिस मशीन को पासवर्ड देने के बिना लॉग ऑन करना चाहते हैं। प्रमाणीकरण प्रक्रिया के चरण हैं:

  1. निजी और सार्वजनिक कुंजी उत्पन्न करने के लिए ssh-keygen चलाएं, जब तक यह आपकी मशीन पर पहले से ही नहीं किया जाता है। ये फाइलों में संग्रहीत हैं $HOME/.ssh
  2. फ़ाइल में सार्वजनिक कुंजी फ़ाइल की सामग्री संलग्न करें $HOME/.ssh/authorized_keys या $HOME/.ssh/authorized_keys2 सर्वर पर

प्रमाणीकरण प्रोटोकॉल के तीन अलग-अलग प्रकार हैं। Ssh-keygen चलाते समय आप प्रकार निर्दिष्ट करते हैं:

  1. SSH प्रोटोकॉल संस्करण 1, RSA1: यह फाइल पहचान में डिफ़ॉल्ट विकल्प और परिणाम है (निजी कुंजी, लेना चाहिए chmod 0700 यह सुनिश्चित करने के लिए कि यह फ़ाइल दूसरों के लिए पठनीय नहीं है) और identity.pub (सार्वजनिक कुंजी)।
  2. SSH प्रोटोकॉल संस्करण 1, आरएसए: यह चलकर प्राप्त किया जाता है ssh-keygen -t rsa और फाइलों में परिणाम id_rsa (निजी कुंजी) और id_rsa.pub (सार्वजनिक कुंजी)
  3. SSH प्रोटोकॉल संस्करण 1, DSA: यह चलकर प्राप्त किया जाता है ssh-keygen -t dsa और फाइलों में परिणाम id_dsa (निजी कुंजी) और id_dsa.pub (सार्वजनिक कुंजी)

एसएसएच-कीजेन चलाते समय आप डिफ़ॉल्ट उत्तरों पर भरोसा कर सकते हैं (जिसका मतलब है कि आप पासफ्रेज नहीं देते हैं)। यह पूरे सेट-अप को सरल बनाता है, लेकिन असुरक्षित भी बनाता है।

आप किसी विकल्प द्वारा उपयोग की जाने वाली कुंजी के प्रकार निर्दिष्ट कर सकते हैं ssh; ssh -1 बलों का उपयोग RSA1 कुंजी (प्रोटोकॉल संस्करण 1), जबकि ssh -2 ताकतों ssh कोशिश करना आरएसए या DSA कुंजी केवल (प्रोटोकॉल संस्करण 2)। नीचे दिए गए उदाहरणों में, हम उत्पन्न और स्थापित करते हैं RSA1 तथा DSA रिमोट होस्ट पर कुंजियां जैसे कि आपके पास अधिक लचीलापन है। आप अपने में एक विन्यास फाइल बना सकते हैं .ssh लाइन के साथ निर्देशिका

Protocol 1,2

यह बनाता है ssh एक कोशिश करो RSA1 (प्रोटोकॉल संस्करण 1) कनेक्शन पहले आरएसए / DSA (प्रोटोकॉल संस्करण 2)।

आरएसए 1 कुंजी का उपयोग करना

remote=user@remotehost   # fill in correct user and remotehost names
cd $HOME/.ssh
# create .ssh on remote host if it is non-existing:
ssh $remote 'if [ ! -d .ssh ]; then mkdir .ssh; fi' 
# copy RSA1 key: 
scp identity.pub ${remote}:.ssh
ssh $remote "cd .ssh; cat identity.pub >> authorized_keys"

डीएसए कुंजी का उपयोग करना

remote=user@remotehost   # fill in correct user and remotehost names
cd $HOME/.ssh
# create .ssh on remote host if it is non-existing:
ssh $remote 'if [ ! -d .ssh ]; then mkdir .ssh; fi' 
# copy DSA key: 
scp id_dsa.pub ${remote}:.ssh
ssh $remote "cd .ssh; cat id_dsa.pub >> authorized_keys2"

यदि आप चाबियाँ उत्पन्न करते समय पासफ्रेज़ का उपयोग नहीं करते हैं तो यह सब आपको करना है। आप ssh $ रिमोट चलाकर कनेक्शन का परीक्षण कर सकते हैं और देख सकते हैं कि आप पासवर्ड देने के बिना लॉग इन कर सकते हैं (आपको इसका उपयोग करने की आवश्यकता हो सकती है -1 या -2 विकल्प के रूप में ssh)। प्रक्रिया, निश्चित रूप से, किसी भी मशीन के लिए दोहराया जा सकता है जिसे आप लॉग ऑन करना चाहते हैं।

यदि आपने पासफ्रेज का उपयोग किया है, तो आपको प्रोग्राम चलाने होंगे ssh-agent इसके बाद एक विशेष खोल शुरू करने के लिए ssh-add पंजीकरण करने के लिए कुंजी / पदबंध के साथ संयोजन sshd। अधिक जानकारी के लिए इन कार्यक्रमों के लिए मैन पेज देखें।

पासवर्ड-मुक्त कनेक्शन स्वचालित करने के लिए एक स्क्रिप्ट: ssh-no-password.sh

#!/bin/sh

# create ssh connections without giving a password

if [ $# -lt 1 ]; then
  echo Usage: $0 username@remotehost
  exit
fi
remote="$1"  # 1st command-line argument is the user@remotehost address
this=$HOST   # name of client host

# first check if we need to run ssh-keygen for generating
# $HOME/.ssh with public and private keys:
if [ ! -d $HOME/.ssh ]; then
  echo "just type RETURN for each question:" # no passphrase - unsecure!!
  # generate RSA1, RSA and DSA keys:
  echo; echo; echo
  ssh-keygen
  echo; echo; echo
  ssh-keygen -t rsa
  echo; echo; echo
  ssh-keygen -t dsa
else
  # we have $HOME/.ssh, but check that we have all types of
  # keys (RSA1, RSA, DSA):
  if [ ! -f $HOME/.ssh/identity ]; then
     # generate RSA1 keys:
     echo "just type RETURN for each question:" # no passphrase - unsecure!!
     ssh-keygen
  fi
  if [ ! -f $HOME/.ssh/id_rsa ]; then
     # generate RSA keys:
     echo "just type RETURN for each question:" # no passphrase - unsecure!!
     ssh-keygen -t rsa
  fi
  if [ ! -f $HOME/.ssh/id_rsa ]; then
     # generate DSA keys:
     echo "just type RETURN for each question:" # no passphrase - unsecure!!
     ssh-keygen -t dsa
  fi
fi


cd $HOME/.ssh

if [ ! -f config ]; then
  # make ssh try ssh -1 (RSA1 keys) first and then ssh -2 (DSA keys)
  echo "Protocol 1,2" > config
fi

# copy public keys (all three types) to the destination host:

echo; echo; echo
# create .ssh on remote host if it's not there:
ssh $remote 'if [ ! -d .ssh ]; then mkdir .ssh; fi' 
# copy RSA1 key: 
scp identity.pub ${remote}:.ssh/${this}_rsa1.pub
# copy RSA key:
#scp id_rsa.pub ${remote}:.ssh/${this}_rsa.pub
# copy DSA key:
scp id_dsa.pub ${remote}:.ssh/${this}_dsa.pub
# make authorized_keys(2) files on remote host:

echo; echo; echo
# this one copies all three keys:
#ssh $remote "cd .ssh; touch authorized_keys authorized_keys2; cat ${this}_rsa1.pub >> authorized_keys; cat ${this}_rsa.pub >> authorized_keys2; cat ${this}_dsa.pub >> authorized_keys2;"
# this one copies RSA1 and DSA keys:
ssh $remote "cd .ssh; touch authorized_keys authorized_keys2; cat ${this}_rsa1.pub >> authorized_keys; cat ${this}_dsa.pub >> authorized_keys2;"

echo; echo; echo
echo "try an ssh $remote"

से कॉपी किया गया: http://folk.uio.no/hpl/scripting/doc/ssh-no-password.html


3
2017-09-14 08:27