কী ssh- এজেন্টে না থাকলে ssh / স্লাগিনের উপর একটি ssh-add করা?


10

আমি যখন জিনোম চালাচ্ছি, পরিচয়টি লোড না করা থাকলে ssh-এজেন্ট স্লাগিন / এসএসএসের উপর এসএস-অ্যাড চালাবে। আমি দূরবর্তী শেলগুলিতে এই আচরণটি নকল করতে চাই তবে আমি যা কিছু পাই তা লগইন করার পরে এসএসএড-অ্যাড চালানোর পরামর্শ দেয়। আমি কেবল তখনই এসএস-অ্যাড চালাতে চাই যদি আমি পরবর্তী সময়ে স্লোগিন / এসএসটি দূরবর্তী শেলটিতে চালিত করি, প্রতিবার আমি লগইন করি না।

উত্তর:


9

আমি বাশ শেলের মাধ্যমে এর সমাধান সমাধান করেছি।

.Bashrc এ যুক্ত করুন:

check-ssh-add() {
if [ "$DESKTOP_SESSION" == "" ]; then
  if [[ `ssh-add -l` != *id_?sa* ]]; then 
    ssh-add -t 5h  ## 5 hour ssh-agent expiration
  fi
fi
}

slogin() {
check-ssh-add
/usr/bin/slogin $@
}

ssh() {
check-ssh-add
/usr/bin/ssh $@
}

scp() {
check-ssh-add
/usr/bin/scp $@
}

sftp() {
check-ssh-add
/usr/bin/sftp $@
}

7

আসলে একটি আরও সহজ উপায় আছে। ssh-add -lকী (টি) এবং মিথ্যা (1) অন্যথায় থাকলে সত্য (0) প্রদান করে, তাই আপনার প্রথম ফাংশন এটি দিয়ে প্রতিস্থাপন করা যেতে পারে:

check-ssh-add() {
  if ! ssh-add -l >/dev/null; then
      ssh-add -t 5h
  fi
}

 


1

এমনকি এটি সহজ এটি একটি ইন্টারেক্টিভ সেশন »পার্ট অ্যাড

ssh-add -l &> /dev/null || ssh-add ~/.ssh/my_id

0

আপনি যদি সক্ষম করে AddKeysToAgent yesথাকেন তবে ওপেনএসএইচ-র নতুন সংস্করণগুলি প্রথম ব্যবহারে এজেন্টের চাবিটি যুক্ত করতে পারে ~/.ssh/config

(আমি https://superuser.com/a/1114257/42546 থেকে এটি শিখেছি various বিভিন্ন স্ট্যাক এক্সচেঞ্জ সাইটগুলিতে উত্তরগুলি মোকাবিলার জন্য সঠিক স্ট্যাকওভারফ্লো শিষ্টাচার কী তা আমি নিশ্চিত নই))

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