আপনি কি স্বয়ংক্রিয় লগইন অনুমোদনের জন্য .ssh / কনফিগারেশনে পাসওয়ার্ড সেট করতে পারেন?


93

আমি উবুন্টু ১১.১০ ব্যবহার করছি। আমি sshপ্রতিদিন অনেকগুলি সার্ভারের সাথে সংযোগ স্থাপনের জন্য ব্যবহার করছি , তাই আমি তাদের পরামিতিগুলি .ssh/configফাইলটিতে এইভাবে রাখি :

Host Home
User netmoon
Port 22
HostName test.com

এই ফাইলটিতে প্রতিটি সংযোগের জন্য পাসওয়ার্ড দেওয়ার কোনও উপায় আছে কি, যাতে সার্ভার যখন পাসওয়ার্ড জিজ্ঞাসা করে, টার্মিনালটি তার পাসওয়ার্ডটি প্রবেশ করে এবং এটি সার্ভারে প্রেরণ করে?

আমার এটি দরকার কারণ কখনও কখনও আমি পিসি থেকে দূরে দাঁড়িয়ে যাই এবং যখন আমি ফিরে যাই, একটি পাসওয়ার্ড টাইপ করুন এবং Enterটার্মিনালটি চাপুন CONNECTION CLOSED

PS আমি কোনও পাবলিক / প্রাইভেট কী জুটি ব্যবহার করতে চাই না।


1
আমি একই পরিস্থিতিতে আছি এবং আমি আমার সর্বজনীন কী আপলোড করতে পারি না কারণ আমার কেবল এসএনএন-এর জন্য এসএসএস অ্যাক্সেস রয়েছে। এটি যদি আমি এসএসএস এসএনহোনস্টের চেষ্টা করি তবে আমি পেয়েছি "(সাফল্য (2 2 () (সম্পাদনা-পাইপলাইন সান্ডিফ 1 অনুপস্থিত-এন্ট্রি কমিট-রেপ্লপ্রপ্স গভীরতা লগ-রেপ্রপ্রোপস আংশিক-পুনরায় খেলুন)))" এসএনএসাইভ প্রতিক্রিয়া এবং শেলটি নয়
উবার্তো

উত্তর:


56

সুবিধার্থে সুরক্ষার বাইরে বাণিজ্য কখনও ভাল হয় না ...

আপনি কি প্যাকেজ ssh-copy-idথেকে ব্যবহার করতে পারেন openssh-client?

থেকে man ssh-copy-id:

ssh-copy-id হ'ল একটি স্ক্রিপ্ট যা দূরবর্তী মেশিনে লগইন করতে এবং সেই মেশিনের identity / .ssh / अधिकृत_keys ফাইলে নির্দেশিত পরিচয় ফাইল যুক্ত করতে ssh ব্যবহার করে।


12
দূরবর্তী প্রশাসক যদি জনসাধারণের কী অনুমোদন অক্ষম করার জন্য জোর দেয় তবে এটি কার্যকর হয় না ...
টমাসজ

2
হ্যাঁ, তবে আপনার সম্পূর্ণ প্রত্যক্ষ তদারকি ও নিয়ন্ত্রণের অধীনে সিস্টেমে বাস্তববাদী হওয়া কোনও আপস করছে না। বলুন, উদাহরণস্বরূপ, কোনও ভিজ্যুয়াল ভার্চুয়াল মেশিনে কোনও একক আসনে কেবলমাত্র উন্নয়ন উদ্দেশ্যে ব্যবহৃত হয় না এমন বাইরের সংযোগ রয়েছে।
স্কট 18

36
কারণ ছাড়াই কঠোর সুরক্ষার জন্য জোর দেওয়া কখনই ভাল হয় না।
cwallenpoole

6
কখনও কখনও এটি ভাল শেষ হয়।
শে

3
আইএমএইচও, প্রমাণীকরণের জন্য পাসওয়ার্ডগুলির জেদ না হওয়ার চেয়ে ঝুঁকিপূর্ণ। আমি প্রায়শই প্রায়শই এসএসএস-এর জন্য এনভায়রনমেন্ট ভেরিয়েবল হিসাবে ব্যবহৃত পাসওয়ার্ড সেট করি যেহেতু আমি নির্বিচারে স্ট্রিংগুলির একটি সেট মনে রাখি না। ব্যবহারকারীদের এটিকে প্রবেশ করার দাবি করে তাদেরকে কেবলমাত্র খারাপভাবে সঞ্চিত রাখতে বলা হচ্ছে।
ডিম্বাকর্ষণকারী

26

আপনি যদি সত্যই কোনও পাবলিক / প্রাইভেট কী জুটি ব্যবহার করতে না চান expectতবে গন্তব্যের ঠিকানার উপর নির্ভর করে স্বয়ংক্রিয়ভাবে আপনার জন্য পাসওয়ার্ড প্রবেশের জন্য একটি স্ক্রিপ্ট লিখতে পারেন ।

সম্পাদনা: আমার অর্থ হ'ল আপনার কাছে এমন একটি স্ক্রিপ্ট expectথাকতে পারে যা আপনার পক্ষে পাসওয়ার্ড প্রবেশ করানোর জন্য ব্যবহার করে এবং অন্যদিকে কোনও কনফিগারেশন ফাইল থেকে কোনও প্রদত্ত ব্যবহারকারীর পাসওয়ার্ড এবং হোস্টটি পড়ে। উদাহরণস্বরূপ, নিম্নলিখিত পাইথন স্ক্রিপ্টটি রোদ দিনের দৃশ্যের জন্য কাজ করবে:

#!/usr/bin/python                                                                                                                        
import argparse
from ConfigParser import ConfigParser
import pexpect

def main(args):
    url = args.url
    user, host = url.split('@', 1)

    cfg_file = 'ssh.cfg'
    cfg = ConfigParser()
    cfg.read(cfg_file)
    passwd = cfg.get(user, host)

    child = pexpect.spawn('ssh {0}'.format(url))
    child.expect('password:')
    child.sendline(passwd)
    child.interact()

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Run ssh through pexpect')
    parser.add_argument('url')
    args = parser.parse_args()
    main(args)

এবং কনফিগারেশন ফাইল ফর্ম্যাট নীচে হবে:

[user_1]
host1 = passwd_1
host2 = passwd_2

[user_2]
host1 = passwd_1
host2 = passwd_2

দ্রষ্টব্য: যেমন ব্যাখ্যা করা হয়েছে, এসএসএস এবং সমস্ত সম্ভাব্য ইউআরএল থেকে সম্ভাব্য সমস্ত ত্রুটি এবং প্রশ্ন বার্তা পরিচালনা করার জন্য পাইথন স্ক্রিপ্টটি আরও জটিল হওয়া দরকার (উদাহরণস্বরূপ ধারণা করা হয়েছে যে এটি এমন কিছু হবে user@hostতবে ব্যবহারকারীর অংশ নয়) টি বেশিরভাগ সময় ব্যবহৃত হয়েছে) তবে মূল ধারণাটি এখনও একই রকম থাকবে। কনফিগারেশন ফাইল সম্পর্কিত, আপনি অন্য কোনও কনফিগারেশন ফাইল ব্যবহার করতে পারেন বা .ssh/configসেই ফাইলটি বিশ্লেষণ করতে এবং আপনার প্রদত্ত ব্যবহারকারী এবং হোস্টের পাসওয়ার্ড পেতে নিজের কোডটি লিখতে এবং লিখতে পারেন ।


আপনি আরও ব্যাখ্যা করতে পারেন?
নেটমুন

@ নেটমুন আমি আমার উত্তরটি পরিষ্কার করার সাথে একটি ছোট উদাহরণ যুক্ত করেছি।
jcollado

এটি কীভাবে .ssh / কনফিগারেশন ফাইলে পাসওয়ার্ড রাখার প্রশ্নের প্রশ্নের উত্তর দেয় না
এরিক উডরুফ

1
আসলে, এটি যে প্রশ্নের উত্তর দেয় না। তবে এটি সমস্যার সমাধান করে: ম্যানুয়ালি পাসওয়ার্ড টাইপ করে এড়াতে এবং এগুলি একটি ফাইলে সংরক্ষণ করে। ওপি যা প্রয়োজন তা খুব সুন্দর।
আর্সিসিলাস

19

সে জন্যও sshpassকর্মসূচি রয়েছে। কিভাবে ব্যবহার করে: sshpass -p MyPa55word ssh me@myservor.com


29
যতক্ষণ না আপনি একটি স্থান, (সঙ্গে আপনার কমান্ড ভূমিকা sshpassপরিবর্তে sshpass), আপনি শুধু আপনার শেল ইতিহাস ফাইলের মধ্যে আপনার পাসওয়ার্ড ( "MyPa55word") সঞ্চিত হয়েছে।
ওয়ালটিনেটর

1
@waltinator ভাল পয়েন্ট
igor

3
ভাল প্রশ্ন জিজ্ঞাসাকারী এটি ছিল সঙ্গে ঠিক ছিল .ssh/config, কেন শেল ইতিহাসে না?
দারথ এগ্রিগিয়াস

এটি আনুষ্ঠানিকভাবে হোমব্রিউতে নেই তবে আপনি এটি দিয়ে তৃতীয় পক্ষের রেপো থেকে ইনস্টল করতে পারেন brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb। আরও: gist.github.com/arunoda/7790979
জ্যাকব ফোর্ড

read -s password; sshpass -p "$password" ssh me@myservor.com। এটি ইতিহাসে পাসওয়ার্ডটি দেখাতে বাধা দেবে
আলেকজান্ডার বার্ড

19

প্রক্সিকমন্ড সম্পর্কে কীভাবে:

Host Home-raw
    HostName test.com
Host Home
   User netmoon
   Port 22
   ProxyCommand sshpass -pmypass ssh netmoon@%h-raw nc localhost %p

আপনি পাশাপাশি ssh -Wপরিবর্তে ব্যবহার করতে পারেন nc:

ProxyCommand sshpass -pmypass ssh netmoon@%h-raw -W localhost:%p

এটি -Wবিকল্প হিসাবে প্রত্যাশার মতো কাজ করবে না । আপনার কি কোনও কর্মসংস্থান আছে?
তোয়ান এনগুইন

2
এটি এখনও এই প্রক্সি কমান্ডের সাহায্যে আমাকে পাসওয়ার্ডের জন্য জিজ্ঞাসা করে ...
ভিক্টর পিসিয়াসবক্স

1
আমি এটি এখনও একটি পাসওয়ার্ড জিজ্ঞাসা খুঁজে। এটি যা করায় মনে হয় তা হল test.comপাসওয়ার্ডের প্রয়োজন থেকে সমস্যাটিকে পাসওয়ার্ডের Homeপ্রয়োজন হয় না। আলোচ্য বিষয়টি কি? এটি কাজে লাগানোর কৌশলটি কী?
মার্টিন ব্রামওয়েল

15

না, এটা সম্ভব নয় আমি ভয় করি।

একমাত্র আসল বিকল্পটি হ'ল ব্যক্তিগত কীগুলি ব্যবহার করা তবে আপনি বলেছেন যে আপনি চান না (কেন করবেন না))


7
কারণ আমার কাছে সার্ভারে অন্য কী লাগানোর অনুমতি নেই।
নেটমুন

2
@ নেটমুন: আপনি যদি লগ ইন করতে পারেন, আপনি একটি কী যুক্ত করতে পারেন, তাই না? আপনার কেবলমাত্র নিজের ডিরেক্টরি ডিরেক্টরিতে লেখার অ্যাক্সেস প্রয়োজন, যদি না সিসাদমিন অদ্ভুতভাবে জিনিসগুলি সেট আপ করে।
স্কট সিভেরেন্স

4
@ স্কটসিভারেন্স আমি মনে করি যে এই পরিস্থিতিটি এই প্রশ্নটিকে বোঝায়। চাবি যুক্ত করার ক্ষমতা নেই। হ্যাঁ এটি আশ্চর্যজনক, তবে এটি প্রায়শই ঘটে।
ব্যবহারকারী 239558

5
আমি শেয়ার্ড হোস্টিং পরিবেশগুলির খুব সাধারণ অভিজ্ঞতা পেয়েছি যেখানে পাবলিক কী অ্যাক্সেস অক্ষম রয়েছে, সুতরাং আপনি কীগুলি যুক্ত করতে পারলেও সেগুলি ব্যবহার করা হয় না। এটি হ্যাঁ কারণের বিরুদ্ধে যায়, তবে অনেক হোস্টিং সরবরাহকারীরা তাদের সার্ভারগুলি সেটআপ করার
উপায়টি করেন

1
এমন উত্তর রয়েছে যেগুলি এটি সম্ভব দেখায়
এরিক উডরুফ

8

আপনি / ইউএসআর / স্থানীয় / বিন একটি সাধারণ ssh স্ক্রিপ্ট প্রতিস্থাপন তৈরি করতে পারেন:

#!/bin/bash

host=$1
password=`awk "/#Password/ && inhost { print \\\$2 } /Host/ { inhost=0 } /Host $host/ { inhost=1 }" ~/.ssh/config`

if [[ -z "$password" ]]; then
  /usr/bin/ssh $*
else
  sshpass -p $password /usr/bin/ssh $*
fi

এবং তারপরে আপনার ~ / .ssh / config ফাইলটিতে আপনি ব্যবহার করতে পারেন

Host foohost
    User baruser
    #Password foobarpassword

4

আমি ভ্যানডাইক সফটওয়্যার থেকে সিকিউরসিআরটি নামে একটি অ্যাপ্লিকেশন ব্যবহার করি ।

http://www.vandyke.com/products/securecrt/

এটি নিখরচায় নয়, তবে খুব যুক্তিসঙ্গত দামের। দূরবর্তী অ্যাক্সেস, টার্মিনাল এমুলেশন এবং (ছত্রভঙ্গ) নেটওয়ার্ক পরিচালনার জন্য আমি কয়েক বছর ধরে এটি ব্যবহার করেছি (উইন্ডোজ চলমান, বা ওয়াইন ব্যবহার করে)। তারা শেষ পর্যন্ত ২০১১ এর শুরুতে এর একটি নেটিভ লিনাক্স সংস্করণ প্রকাশ করেছিল।

এটিতে জটিল লগইন সেটিংস (বা স্ক্রিপ্ট), সঞ্চিত পাসওয়ার্ড (বা শংসাপত্র), একাধিক সেশন ট্যাবড ইত্যাদি সরবরাহ রয়েছে

প্রারম্ভকালে আপনি সঞ্চিত দূরবর্তী (বা স্থানীয়) মেশিনগুলির কাঠামোগত তালিকা (ট্রি ভিউ) থেকে কোন দূরবর্তী লক্ষ্য (এবং প্রোটোকল) চয়ন করতে পারেন, বা কেবল একটি সংযোগ তৈরি করতে পারেন (যা তখন সঞ্চিত থাকে)।

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

যদি আপনি দূরবর্তী অ্যাক্সেসটি প্রচুর পরিমাণে করেন (আপনার মূল ভূমিকার অংশ), তবে এই অ্যাপ্লিকেশনটি ব্যবহারের প্রথম মাসে তার ব্যয়কে ন্যায্যতা দেবে।


দুঃখিত, আমি বুঝতে পারি না। তুমি কি ব্যাখ্যা করতে পারো ?
নেটমুন

1
আপনার জন্য
উচ্চারণ করা

2
উপরের প্রতিক্রিয়া পোস্ট করার পর থেকে সিকিউরসিআরটিটির বেশ কয়েকটি পুনরাবৃত্তি হয়েছে, ডিসেম্বরের প্রথম দিকে সদ্য প্রকাশিত সর্বশেষ এক ভ্যানডাইক সহ including প্রতিটি পুনরাবৃত্তি প্রোগ্রামটিকে আরও বহুমুখী করে তুলছে। এটিতে একটি সমৃদ্ধ এপিআই রয়েছে যা পাইথন / ভিবি স্ক্রিপ্টগুলির সাথে প্রোগ্রামটিকে নিয়ন্ত্রণ / ইন্টারফেস করার অনুমতি দেয়। সিকিউরসিআরটিটি দশকের দশক ধরে আমার মূল টুলকিটের অংশ হয়ে গেছে এবং আমি এটির জন্য অত্যন্ত সুপারিশ করি।
ভিল 21

একমত। আমি প্রতিটি নতুন রিলিজের বিটা-পরীক্ষা চালিয়ে যাচ্ছি, এবং উবুন্টুতে পোর্টিংয়ের জন্য প্রথম দিকে টেস্টিংয়ে ভারী জড়িত ছিলাম ।
ডেভিড 6

2

আপনি যে প্রশ্নটি জিজ্ঞাসা করেছেন তার উত্তরে, কোনও এসএসএস কনফিগার ফাইলে কোনও ডিফল্ট পাসওয়ার্ড কনফিগার করা সম্ভব নয়।

তবে যদি সত্যিই আপনি বলেন, এটি "কারণ মাঝে মাঝে আমি পিসি থেকে দূরে দাঁড়িয়ে যাই এবং যখন আমি ফিরে যাই, একটি পাসওয়ার্ড টাইপ করুন এবং Enterটার্মিনালটি চাপুন CONNECTION CLOSED" , তাহলে কেন পরিবর্তে সেশনটি বন্ধ করা আটকাবেন না? এসএসএইচ আপনার জন্য সংযোগগুলি বাঁচিয়ে রাখতে পারে।

Host Home
  User netmoon
  Port 22
  HostName test.com
  ServerAliveInterval 300
  ServerAliveCountMax 2

1

ধন্যবাদ, অনুপ্রেরণার জন্য আরেক ...

অন্য শেল প্রক্রিয়াটি চালানোর পরিবর্তে এটি বর্তমান ব্যাশ শেলের মধ্যে চলছে কেবল একটি ফাংশন। এটি একটি একক রান awkকনফিগ ফাইল বিশ্লেষণ এবং জিনিসটা যদি এটা (সঙ্গে একটি শেল পরিবর্তনশীল থেকে বা SSH কনফিগ ফাইলে পাসওয়ার্ড লিখিত স্পষ্ট থেকে পাসওয়ার্ড গ্রহণ করা উচিত কমান্ড awkএকটি ইন evalপরিবর্তে describeবিষয় আমি ব্যবহার আঘাত কারণে describe)।

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

# In your .bash_profile
function ssh(){
    host=$1;
    unset PASSWORD
    unset PASSVAR
    eval $(awk "/ *#[Pp]assvar / && inhost { printf \"PASSVAR=%s\",\$2; exit 1 } / *#[Pp]assword / && inhost { printf \"PASSWORD=%s\",\$2; } /^#?[Hh][oO][sS][tT] / && inhost { inhost=0; exit 1 } /^[Hh][oO][sS][tT] $host\$/ { inhost=1 }" ~/.ssh/config)
    if [[ -z "$PASSWORD" ]] && [[ -z "$PASSVAR" ]]; then
        /usr/bin/ssh -q $* 2>/dev/null
    else
       if [[ -n "$PASSVAR" ]]; then
          PASSWORD=$(TMP=${!PASSVAR-*};echo ${TMP##*-})
       fi
       /usr/local/bin/sshpass -p"$PASSWORD" /usr/bin/ssh -q $* 2>/dev/null
    fi
}
# and setup your passwords (perhaps in .bashrc instead...)
MYPASS_ENVVAR=SomePassword
MYPASSWD_FROM_FILE=$(</home/me/.passwd_in_file)

তারপরে একটি ~/.ssh/configবিভাগ এর মতো দেখাচ্ছে:

Host MyHostname
 Port 22
 Hostname 2.1.2.2
 User merrydan
 #Passvar MYPASS_ENVVAR
 #Password Some!Password

যদি #Passvar কনফিগার বিভাগে উপস্থিত থাকে তবে এটিকে ওভাররাইড করে #Password
$MYPASS_ENVVARআপনার পাসওয়ার্ডটি হ'ল পরিবেশ পরিবর্তনশীল।

উপভোগ করুন!


1

এই প্রশ্নটির @ ব্রুনোপিরির উত্তরটি কোনও পাসওয়ার্ড স্পষ্টভাবে প্রবেশ না করে এবং এসএস কীগুলি এড়ানো ছাড়াই সংযোগের একটি বিকল্প পদ্ধতি দেখায়।

আপনি ~/.bashrcএই কমান্ডটি দ্রুত কার্যকর করতে একটি স্ক্রিপ্ট, একটি নাম বা একটি ফাংশন তৈরি করতে পারেন ।

স্পষ্টতই, এই পদ্ধতির সাথে আপনার বিবেচনায় নেওয়া উচিত সুরক্ষার বিবেচনাগুলি।


আপনি যে কোনও সমাধানের সাথে লিঙ্ক করেছেন এটি দুর্দান্ত - তবে, এগিয়ে যাওয়া এবং সমাধানটি এখানে পোস্ট করা ভাল অভ্যাস। এইভাবে, লিঙ্কটি যদি কখনও সরিয়ে ফেলা হয় (যেমন মাঝে মাঝে স্ট্যাক এক্সচেঞ্জে ঘটে) তখনও এখানে ব্যবহারযোগ্য উত্তর রয়েছে।
পল

0

@ আরেকবার্ডাচের উত্তর সম্পর্কে আমার বিস্তৃত রুপটি এখানে। এটি নিম্নলিখিত এক্সটেনশনগুলি সরবরাহ করে:

  • হোস্ট যে কোন জায়গায় হতে পারে sshকম্যান্ড-লাইন; অর্থাত্ এটি ssh <args> <host> <commands>সিনট্যাক্সকে সমর্থন করে
  • পাথটি হার্ড-কোড করে না ssh
  • আরও শক্তিশালী বিশ্লেষণ ssh_config
  • বোনাস: scpখুব জন্য মোড়ক

ssh-wrapper

#!/bin/bash

password=$(awk '
BEGIN {
    # Collect the SSH arguments as keys of a dictionary, so that we can easily
    # check for inclusion.
    for (i = 2; i < ARGC; i++) {
        sshArgs[ARGV[i]] = 1
    }

    # Only process the first argument; all others are the command-line arguments
    # given to ssh.
    ARGC = 2
}
$1 == "Password" && inhost { print $2 }
/^\s*Host\s/ {
    if ($2 in sshArgs)
        inhost=1
    else
        inhost=0
}
' ~/.ssh/config "$@")


if [ "$password" ]; then
    sshpass -p "$password" "$(which ssh)" "$@"
else
    "$(which ssh)" "$@"
fi

scp-wrapper

#!/bin/bash

password=$(awk '
BEGIN {
    # Collect the SCP arguments as keys of a dictionary, so that we can easily
    # check for inclusion.
    for (i = 2; i < ARGC; i++) {
        colonIdx = index(ARGV[i], ":")
        if (colonIdx > 0) {
            scpArgs[substr(ARGV[i], 1, colonIdx - 1)] = 1
        }
    }

    # Only process the first argument; all others are the command-line arguments
    # given to scp.
    ARGC = 2
}
$1 == "Password" && inhost { print $2 }
/^\s*Host\s/ {
    if ($2 in scpArgs)
        inhost=1
    else
        inhost=0
}
' ~/.ssh/config "$@")


if [ "$password" ]; then
    sshpass -p "$password" "$(which scp)" "$@"
else
    "$(which scp)" "$@"
fi

স্থাপন

আপনার এলিয়াসগুলি সংজ্ঞায়িত করুন ~/.bashrc:

alias ssh=ssh-wrapper
alias scp=scp-wrapper

কনফিগারেশন

এই IgnoreUnknownনির্দেশের সাথে, sshনতুনভাবে প্রবর্তিত Passwordনির্দেশনা সম্পর্কে অভিযোগ করবেন না , সুতরাং (@ আরেকবার্ডাচের উত্তরের বিপরীতে), আমরা এটিকে একটি "বাস্তব" কনফিগারেশন হিসাবে উপস্থিত করতে পারি। আপনি যদি এটি পছন্দ না করেন তবে স্ক্রিপ্টটি মন্তব্য-আউট-এ ফিরিয়ে দেওয়া তুচ্ছ।

# Allow specifying passwords for Host entries, to be parsed by ssh-wrapper.
IgnoreUnknown Password

Host foohost
    User baruser
    Password foobarpassword

0

যদি আপনার কী-জুটিতে সরাসরি অ্যাক্সেস না থাকে তবে আপনি নিজের স্থানীয় মেশিনে পাসওয়ার্ড এনক্রিপ্ট করতে পারবেন।

এটি করার উপায়টি হল এরিক উডরুফের প্রক্সিকম্যান্ড ছাড়াও কী ব্যবহার করে আপনার পাসওয়ার্ড এনক্রিপ্ট করা

একত্রিত করার একটি উপায় হ'ল পাইপ ব্যবহার করা:

openssl rsautl -decrypt -inkey /path/to/decrypt_key -in /path/to/encrypted_password  | sshpass ssh real-destination -tt

কোথায়

Host real-destination
    Hostname test.com
    User netmoon

0

একটি উপায় আছে কিভাবে ব্যবহার করবেন তার ব্লগে বর্ণনা সামান্য বৈচিত্র হয় sshpass পাওয়া যাবে, যা এখানে । প্রদত্ত যে আপনার কাছে একটি জিপিজি এনক্রিপ্ট করা পাসওয়ার্ড রয়েছে (এটি কীভাবে ব্লগে বর্ণিত হয়) আপনি এই জাতীয় কিছু করতে পারেন:

 sshpass -p $(echo $(gpg -d -q .sshpasswd.gpg)) ssh your_desination.xyz

এবং কেবলমাত্র আপনার কমান্ডটি একটি উপন্যাস হিসাবে সংরক্ষণ করুন .bashrc

আপনি যদি সেই সংযোগটি দিয়ে সুড়ঙ্গ করতে চান তবে আপনি এমন কিছু করতে পারেন

 Host actual_dest
      Hostname actual.dest.xyz
      User username
      ProxyCommand sshpass -p $(echo $(gpg -d -q ~/.sshpasswd.gpg)) \ 
                   ssh your_destination.xyz nc %h %p
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.