যখন আমি দূরবর্তী হোস্টে ssh অপারেশন করছি তখন কী কীভাবে "কীটির পাসফ্রেজ প্রবেশ করানো" জিজ্ঞাসা করা এড়ানো যায়?


45

আমি একটি দূরবর্তী হোস্টে (লিনাক্স, ফেডোরা) এসএসএস করছি এবং আমি সেখানে এসএসএস অপারেশন করতে চাই (বিটবাকেট সহ গিট)। সেই মেশিনে ssh- এজেন্ট চলছে,

$ ps -e|grep sh-agent
 2203 ?        00:00:00 ssh-agent

তবে যখন আমি গিট করতে চাই, তখন আমার পাসফ্রেজটি প্রবেশ করতে হবে

$ git pull
Enter passphrase for key '/user/wgong/home/.ssh/id_rsa': 

দ্রষ্টব্য: আমি যদি স্থানীয়ভাবে সেই মেশিনটিতে পরিচালনা করি তবে এটি আমাকে পাসফ্রেজ প্রবেশ করতে বলবে না


1
আমি এটি ব্যবহার করি নি তবে এস-এস-অ্যাড কমান্ড রয়েছে যা আমি মনে করি যে এই জাতীয় জিনিসটির জন্য ব্যবহৃত হয়
বার্লপ

উত্তর:


82

আমার মতে ssh ব্যবহারের সেরা উপায়

গিট ব্যবহার করার আগে আপনার কী এসএস-এজেন্টে যুক্ত করুন

শুরু না হলে ssh-এজেন্ট শুরু করুন:

al স্পষ্ট `ssh-agent -s`

Ssh-add ব্যবহার করে আপনার ব্যক্তিগত কী যুক্ত করুন

h ssh-add ~ / .ssh / id_rsa_key /home/user/.ssh/id_rsa_key এর
জন্য পাসফ্রেজ প্রবেশ করান:
পরিচয় যোগ করা হয়েছে: / home/user/.ssh/id_rsa_key (/ home/user/.ssh/
id_rsa_key)

কী যুক্ত হয়েছে কিনা তা পরীক্ষা করুন (প্যারামিটারটি ছোট হাতের এল হয়):


sh ssh-add -l 2048 55: 96: 1a: b1: 31: f6: f0: 6f: d8: a7: 49: 1a: e5: 4c: 94:
6f / home/user/.ssh/id_rsa_key (আরএসএ)

আপনার গিট সার্ভারের সাথে সংযোগ স্থাপনের চেষ্টা করুন:

sh ssh git.example.com

এখন আপনি অতিরিক্ত পাসফ্রেজ প্রম্পট ছাড়াই গিট ব্যবহার করতে পারেন।

অন্যান্য উপায়

https://unix.stackexchange.com/questions/90853/how-can-i-run-ssh-add-automatically-without-password-prompt


তবে আমি গিট ব্যবহার করেছি আপনার কী সংকেত-এজেন্টে যুক্ত করুন, তবে কীভাবে করবেন? ধন্যবাদ
লিলি

@ লিলি দুঃখিত, আমি আপনার প্রশ্ন বুঝতে পারি না।
রোমান

1
এটি আমার জন্য কাজ করা সমাধান।
স্ক্যাটক্স

2
আমি কীভাবে এই অধ্যবসায়ী করব? সহজভাবে এটি .bashrc? োকানো ?
oarfish

1
এফওয়াইআই, এটি evalপ্রয়োজনীয় কারণ এটি কমান্ড আউটপুট করে যে এসএসএইচ_এইউথ_সোকের মতো পরিবেশের পরিবর্তনশীলগুলি রফতানি করে। unix.stackexchange.com/questions/351725/…
উইসবুকি

21

আপনার যদি ইতিমধ্যে ssh-agentচলমান থাকে তবে আপনি কীটি যুক্ত করতে পারেন এবং আপনাকে একবার এবং একবার সেই সেশনের জন্য পাসফ্রেজটি প্রবেশ করতে হবে।

ssh-add ~/.ssh/id_rsa

আপনি কোন ওএস ব্যবহার করছেন তা আপনি বলছেন না, তবে এটি লিনাক্স এবং জিনোম হিসাবে যদি ঘটে থাকে তবে "পাসওয়ার্ডস এবং কী" অ্যাপ্লিকেশন (সিএলআই নাম seahorse:) এগুলি পরিচালনা করতে পারে যাতে আপনি লগ ইন করার সময় এগুলি আনলক হয়ে যায় (কোনও পাসফ্রেজের প্রয়োজন হয় না) । অন্যান্য লিনাক্স ডেস্কটপ পরিবেশের নিজস্ব পরিচালক রয়েছে। আমি নিশ্চিত নই যে অন্যান্য ওএস এখানে কী করে।


3

পাসফ্রেজ জিজ্ঞাসার প্রধান কারণ হ'ল আপনার কী এনক্রিপ্ট করা হয়েছে, এই দুটি তুলনা করুন:

  • এনক্রিপ্ট করা হয়নি

    $ head ~/.ssh/id_rsa 
    -----BEGIN RSA PRIVATE KEY-----            
    AIIAogIBAAKCAQEAtOJQ0Z3ZbyzuknnHqn5oMCmNf8zGmERhW+g5Eftf9daZ5qvZ
    
  • এনক্রিপ্ট করা

    $ head ~/.ssh/id_rsa 
    -----BEGIN RSA PRIVATE KEY-----    
    Proc-Type: 4,ENCRYPTED
    DEK-Info: AES-128-CBC,A95215C9E9FE00B8D73C58BE005DAD82
    
    ZAzLq/LbHSfOVkXtQz6M6U8yuAx2lIu9bH/k7ksgat92IDjZntRrT1XMpkYtjB+0
    

সুতরাং আপনাকে নিম্নলিখিতগুলির একটি করতে হবে:

  1. এটি এনক্রিপ্ট করা থাকলে আপনি এনক্রিপশনটি সরিয়ে দেওয়ার চেষ্টা করতে পারেন
  2. আপনি ভুল কী ব্যবহার করছেন। আপনি যদি আলাদা কী ব্যবহার করতে চান তবে অন্য ফাইলটি নির্দিষ্ট করুন বা আপনার সম্পাদনা করুন ~/.ssh/configএবং আলাদা পরিচয় ফাইল ( IdentityFile) নির্দিষ্ট করুন ।
  3. ssh-add -lআপনার সমস্ত পরিচয় তালিকার জন্য রান করুন (তারপরে আপনার স্থানীয় সাথে তুলনা করুন) এবং আপনি সঠিক কীগুলি ব্যবহার করছেন কিনা তা স্ট্যাশের সাথে ডাবল চেক করুন (সেগুলি স্ট্যাশ কনফিগারেশনে বিদ্যমান রয়েছে)।
  4. আপনি যদি পাসফ্রেজ জানেন এবং আপনি এটি স্বয়ংক্রিয় করতে চান তবে নীচের কাজটি চেষ্টা করুন:

    PS="my_passphrase"
    install -vm700 <(echo "echo $PS") $PWD/my_pass
    DISPLAY= SSH_ASKPASS=$PWD/my_pass ssh-add - && rm -v my_pass
    

সমস্যা সমাধান:

  1. আপনার এসএসএইচ এজেন্ট ( eval "$(ssh-agent -s)") চলছে কিনা ডাবল পরীক্ষা করুন ।
  2. আপনার কমান্ডটি আবার ডিবাগ করার জন্য : দ্বারা (গিট ২.৩.০++) GIT_TRACE=1 git pullদিয়ে পুনরায় চালনা করুন GIT_SSH_COMMAND="ssh -vv"
  3. আপনি পাসফ্রেজ (যা এটিকে পুনর্নির্দেশ করবে true) জিজ্ঞাসা করে বাইপাস করার চেষ্টা করতে পারেন , তবে আমি মনে করি না এটি সাহায্য করবে। যদি এটি এর জন্য জিজ্ঞাসা করে তবে এর জন্য একটি কারণ আছে এবং এটি মূলত প্রয়োজন।

    DISPLAY= SSH_ASKPASS=/bin/true ssh-add
    

2

ssh-addপ্রোগ্রাম একটি শুরু এজেন্ট যা ধরে রাখতে পারেন (এবং প্রদান) আপনার পাসফ্রেজ। এটি দূরবর্তীভাবে ব্যবহার করার উপায়টি আপনার ইন্টারেক্টিভ শেলের একটি পিতামাতার মধ্যে রয়েছে (যাতে এজেন্টটি থামবে না)।

এখানে কয়েকটি সম্পর্কিত প্রশ্ন রয়েছে:

এখন ... দূরবর্তীভাবে সংযুক্ত হচ্ছে , একটি নিয়ম হিসাবে আপনার কমান্ড যেমন লগ ইন করে না, তাই এটি শুরু হয় না ssh-add। আপনি এটি ঘিরে কাজ করতে পারেন, কোনও স্ক্রিপ্ট চালিয়ে

  • শুরু ssh-agent
  • শুরু ssh-add
  • আপনার চাবি যুক্ত করুন
  • আপনি যে আদেশটি চান তা চালায় runs

দুর্বল পয়েন্টটি দ্বিতীয় পদক্ষেপ: আপনি এখনও পাসফ্রেজের জন্য অনুরোধ করবেন, যদি না আপনি কোনও পাসফ্রেজ নেই এমন কী ব্যবহার করে আপনার সুরক্ষা দুর্বল করেন । কিছু লোক এটি করেন, বেশিরভাগ লোক এর বিরুদ্ধে পরামর্শ দেয়।


ssh-addএজেন্ট শুরু করে না এটি ইতিমধ্যে চলমান এজেন্টের সাথে সংযোগ স্থাপন করে।
এএমএস

ধন্যবাদ - আমি আলাদা স্ক্রিপ্টগুলিতে এগুলি করতে অভ্যস্ত এবং হারিয়ে যাওয়া অংশটিকে উপেক্ষা করেছি।
টমাস ডিকি

0

আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে সহজেই আপনার কীটির পাসফ্রেজ মুছে ফেলতে পারেন

ssh-keygen -p

প্রথম প্রম্পটে, ফাইলের পাথ প্রবেশ করুন (বা ডিফল্ট পরিবর্তন করতে এন্টার টিপুন) দ্বিতীয় প্রম্পট, পুরাতন পাসফ্রেজ প্রবেশ করুন পরবর্তী প্রম্পট, কেবল পাসফ্রেজটি আনসেট করতে এন্টার টিপুন

দেখে মনে হচ্ছে এটি সহজতম উপায়!


0

আপনি এখনও এমনকি যদি তা লোড হয় ব্যক্তিগত কী ডিক্রিপ্ট করতে পাসওয়ার্ড প্রম্পটের পাবেনssh-agent পর্যন্ত সংশ্লিষ্ট SSH সার্বজনীন-কি দূরবর্তী মধ্যে যোগ করা হয় ~/.ssh/authorized_keys

বংশবৃদ্ধি:

# We are about to ssh to localhost, therefore, unauthorized everyone.
$ rm ~/.ssh/authorized_keys

$ eval $(ssh-agent)
# Agent pid 9290

$ ssh-add
# Enter passphrase for /home/uvsmtid/.ssh/id_rsa: 
# Identity added: /home/uvsmtid/.ssh/id_rsa (/home/uvsmtid/.ssh/id_rsa)

$ ssh localhost
# Enter passphrase for key '/home/uvsmtid/.ssh/id_rsa':
# uvsmtid@localhost's password:
  # NOTE: See password prompt for private key
  #       (and only then prompt for remote login).
  #       Why? Isn't the private key is already loaded by `ssh-add`?

$ ssh-copy-id localhost
$ ssh localhost
  # NOTE: No password for private key anymore.
  #       The key is served by `ssh-agent`.

যথেষ্ট বিভ্রান্তি। রিমোট এসএসএইচ লগইন পাসওয়ার্ড এই ক্ষেত্রে যথেষ্ট হবে।

আমি অনুমান করতে পারি যে এটি প্রাইভেট কী সম্পর্কিত সম্পর্কিত এনক্রিপশন পাসওয়ার্ড না জেনে আপনার সার্বজনীন কী (যা এনক্রিপ্ট করা প্রাইভেট কী দিয়ে যুক্ত) রোধ করে ts এটি যাইহোক, প্রতি-রিমোট-লগইন পদ্ধতি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.