উইন্ডোজের জন্য এসএসএস-কপি-আইডির সমতুল্য কি আছে?


56

উইন্ডোজের জন্য কি এসএসআই-কপি-আইডির সমতুল্য বা বন্দর পাওয়া যায়? যে, একটি স্থানীয় মেশিন থেকে উইন্ডোজ অধীনে একটি রিমোট সার্ভারে এসএসএইচ কী স্থানান্তর করার কোন সহজ উপায় আছে?

যদি এটি সহায়তা করে তবে আমি ইতিমধ্যে পেজেন্ট এবং কিটি (একটি পুট্টি বিকল্প) ব্যবহার করছি ।

উত্তর:


27

ssh-copy-id একটি দুর্দান্ত সরল স্ক্রিপ্ট যা উইন্ডোজের নিচে প্রতিলিপি করা খুব সহজ হওয়া উচিত।

আপনি যদি সমস্ত প্যারামিটার হ্যান্ডলিং, ত্রুটি পরিচালনা এবং এগুলি উপেক্ষা করে থাকেন তবে এইগুলি ssh-copy-id এর দুটি কমান্ড যা প্রকৃতপক্ষে বেশিরভাগ সময় কাজ করে।

GET_ID="cat ${ID_FILE}"
{ eval "$GET_ID" ; } | ssh ${1%:} "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys" || exit 1

পুট্টি সরঞ্জামগুলি ব্যবহার করে এর মতো একটি কমান্ড সমান হতে হবে (পরীক্ষিত নয়)।

type  public_id | plink.exe username@hostname "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"

যদি আপনি একই রকম ত্রুটি পরিচালনা এবং অটোমেটিক কী অবস্থানটি করতে চান তবে আমি নিশ্চিত যে উইন্ডোজ এর অধীনে একটি স্ক্রিপ্ট লেখা অনেক জটিল হবে তবে অবশ্যই সম্ভব।


1
ধন্যবাদ! আমি প্রথমে এটি কাজ করতে পারি না; আমি "অ্যাক্সেস অস্বীকৃত" ত্রুটিগুলি ফিরে পেয়েছিলাম, কিন্তু প্লিংকটি আমাকে পাসওয়ার্ডটি প্রবেশ করতে দিচ্ছিল না। আমি তখন -pw সুইচ ব্যবহার করে পাসওয়ার্ডটি প্লিংক দিয়ে দেওয়ার চেষ্টা করেছি এবং এটি কাজ করেছে। আপনি কি জানেন যে মাঝখানে দিয়ে পাসওয়ার্ডটি প্রবেশ করার জন্য বিরতি দেওয়ার জন্য প্লিংক পাওয়ার কোনও উপায় আছে কিনা?
ম্যাট ভি।

পাসওয়ার্ড প্রমাণীকরণ এবং প্লিংক সম্পর্কে সত্যই নিশ্চিত নয়। আমি যখনই বাস্তবে এটি ব্যবহার করি তখনই সিস্টেমে আমার কীটি রয়েছে এবং আমার পেজেন্ট চলছে।
জোরডাচে

4
plink.exe -pw passwordকাজ করে। এছাড়াও আপনি যদি জানেন তবে .ssh / type id_rsa.pub | plink.exe -ssh user@host -pw password "cat >> .ssh/authorized_keys"
अधिकृत_keys

@ কেসিডি .ssh/ডিরেক্টরি উপস্থিত থাকলে এটি যথেষ্ট is >>যদি এটা কোন অস্তিত্ব নেই ফেরৎ তারপর ফাইল তৈরি হবে।
pabouk

20

এই উত্তরগুলি আমাকে সাহায্য করতে পারেনি। আমার আসলে কোনও পাগল স্ক্রিপ্টের দরকার নেই। আমি আমার ক্লায়েন্ট মেশিনে গিট ব্যাশে একটি পাবলিক কী তৈরি করেছি এবং এটি কোনও ভিপিএসে অনুলিপি করার চেষ্টা করছিলাম।

আপনার সর্বজনীন কী তৈরির পরে, কীটি "(আপনি যে ফোল্ডারে শুরু করেছিলেন) /। Ssh / id_rsa.pub" হিসাবে সংরক্ষণ করা উচিত

সুতরাং এই কমান্ডটি ব্যবহার করুন:
cat ~/.ssh/id_rsa.pub | ssh user@123.45.67.89 "cat >> ~/.ssh/authorized_keys" কোথায় userআপনার ব্যবহারকারীর নাম (কখনও কখনও "রুট", বা আপনি যা কিছু সেট আপ করতে পারেন) এবং 123.45.67.89আপনার মেশিন / হোস্ট / ভিপিএসের আইপি ঠিকানাটি প্রতিস্থাপন করুন ।

.sshহোস্ট মেশিনে ডিরেক্টরিটি এখনও তৈরি না করা থাকলে, এই ছোট প্রকরণটি ব্যবহার করুন:
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"


2
আশা করি আমার আরও ভোট হত! ওয়ান-লাইনারের জন্য!
প্যাট্রিক্টোকিফ

16

ssh-copy-id টি বেশ কয়েকটি কাজ করে (বিশদটির জন্য ম্যান পৃষ্ঠাটি পড়ুন ) তবে এটির সবচেয়ে গুরুত্বপূর্ণ কাজটি আপনার স্থানীয় পাবলিক কী ফাইলের বিষয়বস্তুকে অনুমোদিত_কিগুলি নামক একটি রিমোট ফাইলের সাথে যুক্ত করা হয়।

  • আপনি নিজে টেক্সট এডিটর দিয়ে কী ফাইলটি খোলার মাধ্যমে এবং কিটি টার্মিনালে থাকা সামগ্রীগুলি আটকে দিয়ে নিজেই এটি করতে পারেন।
    echo 'long_line_with_contents_of_public_key_file' >> .ssh/authorized_keys

  • বিকল্পভাবে, আপনি উইনসিসিপি ব্যবহার করে ফাইলটি আপলোড করতে পারেন (যা এসফটিপি ব্যবহার করে , বা ফালব্যাক হিসাবে scp ব্যবহার করে) এবং আমার পূর্ববর্তী পরামর্শ অনুসারে কুরুচিপূর্ণ অনুলিপি / আটকানো ছাড়া কিছু করতে পারে।
    cat id_rsa.pub >> .ssh/authorized_keys
    যেখানে id_rsa.pub হ'ল আপনার আপলোড করা সর্বজনীন কীটির ফাইল নাম।


5

জোরডাচের জবাব থেকে অনুপ্রাণিত হয়ে, আমি উইন্ডো সংস্করণ বলে অনেকগুলি স্ক্রিপ্ট তৈরি করেছি। তবে তারা সবাই প্লিংকের উপর নির্ভর করে। এখানে একবার দেখুন

https://github.com/VijayS1/Scripts/blob/master/ssh-copy-id/

আমার কাছে একটি উইন্সসিপি স্ক্রিপ্টও রয়েছে যা অন্য উত্তর হিসাবে ব্যবহার করা যেতে পারে। :) রিডমি থেকে অংশ:

এখনও পর্যন্ত চেষ্টা করা পদ্ধতি:

  • ডস (.সিএমডি) - সাফল্য
    • usage: .\Scriptname test@example.com password [identity file]
  • ভিবিএস (.vbs) - সাফল্য
    • usage: .\Scriptname /i:idtest.pub user@example.com /p:password
  • পাওয়ারশেল (.ps1) - সাফল্য
    • usage: .\Scriptname -i idtest.pub user@example.com password
  • mremoteNG (ext অ্যাপ্লিকেশন) - সাফল্য
    • হোস্ট নির্বাচন করুন, ডান ক্লিক করুন, বাহ্যিক সরঞ্জামগুলি, স্ক্রিপ্টের নাম নির্বাচন করুন
  • WinSCP স্ক্রিপ্ট (.bat) - সাফল্য
    • # "WinSCP.com" /script=".\Scriptname" /parameter "user[:password]@example.com" "id_rsa.pub" [/log=".\copyssh.log]"

1
এই চমত্কার মিষ্টি
মাস

5

উইন্ডোজ 7 এ একটি ssh.exe রয়েছে

আমার জন্য যা কাজ করেছে তা এখানে:

1. পরিচয় তৈরি করুন (উইন্ডোতে)

c:\>ssh-keygen

এটি হোম ডিরেক্টরিতে একটি পরিচয় ফাইল তৈরি করেছে। আমি পাবলিক কীটির নাম পরিবর্তন করে "id_rsa" করেছি

২. তার উত্তরের জন্য https://serverfault.com/users/984/zoredache এ ssh ক্রেডিট ব্যবহার করে লক্ষ্য লিনাক্স সিস্টেমে ফাইলটি অনুলিপি করুন

c:\>ssh user@lnxhost "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1" < \\path_to_where_the_file_was_generated_from_ssh_key_gen\id_rsa.pub

দ্রষ্টব্য: কিছু কারণে পাইপিং আমার পক্ষে কার্যকর হয়নি:

# this should work but it didn't work for me 
type file | ssh user@lnxhost "cat >> /tmp/t.txt"

৩. লিনাক্সে ফাইলটি সংশোধন করুন উইন্ডোতে id_rsa.pub ফাইলটি মাল্টিলাইন যেখানে লিনাক্স এটি একটি লাইনে প্রত্যাশা করে তাই আমাদের এটি কিছুটা সংশোধন করতে হবে। লিনাক্সে লগইন করুন এবং ফাইলটি খুলুন:

vi ~/.ssh/authorized_keys

উদাহরণ স্বরূপ:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "2048-bit RSA, user@winhost"
AAAAB3NzaC1yc2EAAAABIwAAAQEAnvYlVooXGoj3+7huZBUqf4wj57r25SHCKiiShyla33
5flX7Rsmb4meExpdh2NzfzffG15xl1wo0xBZ3HdZdqF2GUniEcNbtVjS1FKzQwPfsYPHMC
Y58qT0U2ZgK1zsXj2o0D2RWrCv3DFFfwUgNyZRYN2HK32umY6OmGSOVuJvIKhT+X6YaCVy
ax3CHv2ByB2OTBl9mh4nrwYAVXToT+X2psBE+MKB5R85lrUGkl3GtymTk10Dvf5O80exdT
LFRMvkCA5RAIZgvxMk/bbNaH/0UHQoctX9oaDeKGWUPfVaknFBQdU9009+lK/ocAlKVNHE
Qkw+1wuV6dFoT1/hngSw==
---- END SSH2 PUBLIC KEY ----

হওয়া উচিত

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAnvYlVooXGoj3+7huZBUqf4wj57r25SHCKiiShyla335flX7Rsmb4meExpdh2NzfzffG15xl1wo0xBZ3HdZdqF2GUniEcNbtVjS1FKzQwPfsYPHMCY58qT0U2ZgK1zsXj2o0D2RWrCv3DFFfwUgNyZRYN2HK32umY6OmGSOVuJvIKhT+X6YaCVyax3CHv2ByB2OTBl9mh4nrwYAVXToT+X2psBE+MKB5R85lrUGkl3GtymTk10Dvf5O80exdTLFRMvkCA5RAIZgvxMk/bbNaH/0UHQoctX9oaDeKGWUPfVaknFBQdU9009+lK/ocAlKVNHEQkw+1wuV6dFoT1/hngSw== user@winhost

4. এটি পরীক্ষা

c:\>ssh user@lnxhost "ls -al /tmp/"

এটি পাসওয়ার্ড না জিজ্ঞাসা করে / tmp এর বিষয়বস্তু তালিকাভুক্ত করা উচিত।


1
Step ধাপের authorized_keysজন্য single একক লাইনে পুনরায় ফর্ম্যাট করা আমার যা প্রয়োজন তা কেবল!
প্যাট্রিক্টোকিফ

খুশি এটি আপনাকে সহায়তা করেছে - উত্তরটি উত্তর দিন :)
দেইয়ান

5

আপনার যদি ssh-copy-idউইন্ডোজে না থাকে তবে আপনি এটি সার্ভারেই চালাতে পারবেন।

  • পুটটাইজেনে আপনার ব্যক্তিগত কী (.ppk) লোড করুন;
  • ক্লিপবোর্ডে ওপেনএসএসএইচ অনুমোদিত_কিজি ফাইলটিতে আটকানোর জন্য পাবলিক কীটির বাক্সের সামগ্রীগুলি অনুলিপি করুন ।
  • এটি আপনার প্রিয় সম্পাদকটিতে আটকান (উইন্ডোজ নোটপ্যাডটি করবে)।
  • .pubএক্সটেনশন সহ কোনও ফাইলে বিষয়বস্তু সংরক্ষণ করুন ।
  • .pubসার্ভারে ফাইল আপলোড করুন ।
  • পুটিটিওয়াইয়ের মতো এসএসএইচ ক্লায়েন্টের সাথে সার্ভারে লগইন করুন।
  • সার্ভারে টাইপ করুন:

    ssh-copy-id -i mykey.pub username@localhost
    

Windows এ ssh-copy-idস্ক্রিপ্ট দিয়ে আসে উইন্ডোজ জন্য Git । সুতরাং আপনি যদি স্থানীয়ভাবে এটি ব্যবহার করতে পারেন, যদি আপনার উইন্ডোজের জন্য গিট থাকে।


আপনি যদি ম্যানুয়ালি এটি করতে না চান তবে আপনি WinSCP 5.15 ব্যবহার করতে পারেন । এটি আপনার জন্য সর্বজনীন কী প্রমাণীকরণ সেটআপ করতে পারে।
ব্যবহার করুন > সরঞ্জাম সার্ভার মধ্যে সর্বজনীন কী ইনস্টল করুন বোতাম , SSH> WinSCP অ্যাডভান্সড সাইট সেটিংস ডায়ালগের প্রমাণীকরণ পৃষ্ঠা

এখানে চিত্র বর্ণনা লিখুন

(আমি উইনসিসিপি এর লেখক)


এটি গ্রহণযোগ্য উত্তর হওয়া উচিত: উইন্ডোজ 7 এর জন্য গিট-ব্যাশ; লিনাক্স সাবসিস্টেম উইন্ডোজ 10
অ্যালেক্স

0

আপনি যদি সেমিডারার (বা এমএসএসজিট / মিংডাব্লুতে স্ক্রিপ & এসএসএস) ব্যবহার করেন তবে আমি এটির জন্য একটি সাধারণ পাইথন স্ক্রিপ্ট লিখেছি। এটি এখানে পাওয়া যাবে: https://gist.github.com/ceilfors/fb6908dc8ac96e8fc983

নমুনা ব্যবহার: পাইথন ssh- কপি- id.py ব্যবহারকারী @ রিমোট-মেশিন।

স্ক্রিপ্টটি চালানোর সাথে সাথে পাসওয়ার্ড জানানো হবে।


এটি কেন সেন্টিমিডারের প্রয়োজন?
ডেভিড জোরিচটা

@ user57411 এর জন্য সেমিডারারের প্রয়োজন নেই, এর জন্য স্কিপ এবং এসএসএস কমান্ড প্রয়োজন।
সিলফারস 7:48

0

আমি কী করেছি, আমার উইন 10 এ সাইগউইন রেখে লিনাক্সের সাথে সংযোগ স্থাপন করেছি (উপরের উত্তরের ভিত্তিতে):

- দ্রষ্টব্য: বিড়াল ব্যবহার করে এটি স্বয়ংক্রিয়ভাবে সাইগউইন পাথ সমাধান করবে এবং সেই সাথে সাইগউইন-লিনাক্স-ফোল্ডার-কাঠামো ব্যবহার করে যে কোনও সাইগউইন কমান্ড ব্যবহার করা হবে

1. added c:\cygwin\bin to the environment's Path variable
2. starting cmd.exe (windows commandline)
3. > ssh-keygen -t rsa   (just pressing enter till done)
4. > cat ~/.ssh/id_rsa.pub | ssh user@server "umask 077; test -d ~/.ssh || mkdir ~/.ssh ; cat >> ~/.ssh/authorized_keys"
5. ..enter server password
6. > ssh user@server (testing, not beeing asked for password)

0

নিম্নলিখিত পদক্ষেপগুলি করবে:

পদক্ষেপ -১: আরএসএ কী জুড়ি উত্পন্ন করুন

C:\Users\user>ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/user//.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/user//.ssh/id_rsa.
Your public key has been saved in /c/Users/user//.ssh/id_rsa.pub.
The key fingerprint is:
20:16:9b:0d:00:92:c4:34:99:51:20:b7:ef:50:c4:0f user@localhost

STE2-2: উইন্ডোতে ssh-copy-id সমতুল্য equivalent

C:\Users\user>ssh user@remote "umask 077; test -d .ssh || mkdir .ssh ; cat >> .s
sh/authorized_keys || exit 1" < "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys
 || exit 1" < C:\Users\user\.ssh\id_rsa.pub
The authenticity of host 'remote (xx.xx.xxx.xx)' can't be established.
RSA key fingerprint is 99:99:73:74:fe:14:bc:91:c8:3b:ac:f4:95:99:4d:06.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'remote,xx.xx.xxx.xx' (RSA) to the list of known hosts.
*************************************************************************
This computer system is the property of Sample Corporation and is to
be used for business purposes.  All information, messages, software and
hardware created, stored, accessed, received, or used by you through
this system is considered to be the sole property of Sample Corporation
and can and may be monitored, reviewed, and retained at any time.  You
should have no expectation that any such information, messages or
material will be private.  By accessing and using this computer, you
acknowledge and consent to such monitoring and information retrieval.
By accessing and using this computer, you also agree to comply with
all of Sample Company's policies and standards.
*************************************************************************
user@remote's password:[Enter Password for first time]

পদক্ষেপ -৩: পাসওয়ার্ডহীন প্রমাণীকরণ কাজ করে!

C:\Users\user>ssh user@remote
*************************************************************************
This computer system is the property of Sample Corporation and is to
be used for business purposes.  All information, messages, software and
hardware created, stored, accessed, received, or used by you through
this system is considered to be the sole property of Sample Corporation
and can and may be monitored, reviewed, and retained at any time.  You
should have no expectation that any such information, messages or
material will be private.  By accessing and using this computer, you
acknowledge and consent to such monitoring and information retrieval.
By accessing and using this computer, you also agree to comply with
all of Sample Company's policies and standards.
*************************************************************************
Last login: Wed Oct 14 14:37:13 2015 from localhost


0

উইন্ডোজের জন্য গিট অন্তর্ভুক্ত এসএসএইচ এর পাওয়ারশেল সংস্করণ

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

function ssh-copy-id([string]$userAtMachine){   
    $publicKey = "$ENV:USERPROFILE" + "/.ssh/id_rsa.pub"
    if (!(Test-Path "$publicKey")){
        Write-Error "ERROR: failed to open ID file '$publicKey': No such file"            
    }
    else {
        & cat "$publicKey" | ssh $userAtMachine "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1"      
    }
}

পাওয়ারশেল কনসোলে:

ssh-copy-id user@machine

ssh-copy-id এর উপস্থিতি না থাকলে কোনও কী উত্পন্ন করার কথা নয়।
রালফ্রেডল

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