본문 바로가기

카테고리 없음

Cygwin Generating Public Ssh Key



Generating a public and private key for SSH logon with Cygwin You can use the Cygwin utility to create the public and private keys for SSH logon that you need for accessing IBM Commerce on Cloud environment servers and applications. SSH Keys With PuTTY and Cygwin for Windows. I’ll delve into how I’ve set up my computer to use public/private SSH key pairings for accessing different environments. I prefer the more secure approach of generating specific pairings for Github, Gitlab, and any client-specific instances.

Generating a new SSH key. Open Terminal Terminal Git Bash. Paste the text below, substituting in your GitHub email address. $ ssh-keygen -t rsa -b 4096 -C 'youremail@example.com' This creates a new ssh key, using the provided email as a label. Generating public/private rsa key pair.

SSH without password from Windows/Cygwin

First of all the <spanclass=spelle>openSSH</spanclass=spelle>

package must be installed on Cygwin.

Ref:http://www.mines.edu/~gmurray/HowTo/sshNotes.html#ShellNotHome

Note that theseexplanations make reference to your 'home' directory (written'HOME' or '~'). On UNIX machines (including Linux) this isthe directory you land in when you login, and where you keep your files; thislocation is stored in the environment variable 'HOME'. Note that'HOME' is the name of the variable, and that $HOME is the value, e.g.HOME's value may be 'C:nifty'. The naturalHOME for the Windows user Nifty is the existing folder 'Documents andSettingsNifty' but Cygwin and other UNIXrelated applications are not necessarily happy with pathnames that includeblanks, so you should create your own HOME directory for Cygwinas described below.

Windows only

SSH can give youauthenticated and encrypted connections to remote computers. If you set up keysyou can make these connections without passwords. Installing <spanclass=spelle>Cygwin</spanclass=spelle>

is pretty easy but the home directory andpublic/private key business, on Cygwin, is somethingof a pain; it's going to push the 'beginner' envelope but is doable.If you don't mind typing passwords with every connection, you can skip all theWindows HOME business below after installing and running Cygwin.If for some reason you do not wish to install Cygwinon Windows you may want to consider putty. I do not cover how to use puttyhere.

InstallingCygwin on Windows: This is pretty straightforward.<spanlang=en-us>

Download the Cygwininstallation wizard setup.exe from the Cygwin siteand double-click on it. Most of the default selections in the wizard are fine.Select a place to install Cygwin (recommended:C:cygwin) and select a place to put the installation files (the same placeworks). Choose an ftp site from the list and then review the additionalpackages you want installed. You must select at least the <spanclass=grame>ssh</spanclass=grame> package from the Net section (and the <spanclass=spelle>cvs package from Devel if youknow you will need cvs); these are not selected bydefault. You do not need the sources.</spanclass=spelle>

</spanlang=en-us>

Running <spanclass=spelle>Cygwin</spanclass=spelle>

on Windows: You start a Cygwinconsole from the Start menu, and type the commands in that window. (If theshell does not open in the HOME directory, see below). The lscommand lists files and folders ('directories' in UNIX lingo). The <spanclass=spelle>cd command enables you to change directories, '<spanclass=spelle>cd ..'moves you up a directory. The Cygwin console is muchlike a regular UNIX terminal and may be customized on startup with .<spanclass=spelle>bash_profile and .bashrc files inyour HOME directory. Search the web for more about UNIX for beginners. You cansee the (terse) documentation for any command by using the 'man'command, for example, 'man ls' or 'manssh-keygen'. </spanclass=spelle></spanclass=spelle></spanclass=spelle>

By the way, <spanclass=spelle>Cygwin</spanclass=spelle>

comes with a small program to set up <spanclass=spelle>ssh for you. The command is <spanclass=spelle>ssh-user-config, which will create keys and <spanclass=grame>a .ssh directory in your HOMEdirectory. However, it will not create the HOME directory, nor fix your /etc/<spanclass=spelle>passwd, nor put the public key on the remote computer, allof which are necessary and described below. I've never used it. </spanclass=spelle></spanclass=grame></spanclass=spelle></spanclass=spelle>Key

Creatingthe home directory with Cygwin: The <spanclass=spelle>Cygwin</spanclass=spelle> installation folder contains folders '<spanclass=spelle>usr</spanclass=spelle>

' and 'bin'.

<spanlang=en-us>

If there is not one already, add a foldercalled 'home' and in that folder add a folder with some name,typically your user name, e.g., 'nifty'. This will be the folderwhere ssh.exe will look for the .ssh foldercontaining your keys; see below. (Cygwin thinks yourhome is where the line in /etc/passwd says it is, seebelow). Note your home directory does not have to be in Cygwin's'/home' (mine is not), you can put it anywhere, e.g., C:nifty. To dothis, you will have to start a Cygwin console and run

</spanlang=en-us>

$ <spanclass=spelle>cd /</spanclass=spelle>$ <spanclass=spelle>mkdir home </spanclass=spelle>$ <spanclass=spelle>cd home</spanclass=spelle>$ <spanclass=spelle>ln -s /cygdrive/c/niftynifty</spanclass=spelle>The '<spanclass=spelle>ln' command is making a symbolic link, like a Windowsshortcut, from Cygwin's /home/nifty to your C:nifty.Note that '/cygdrive/c/nifty' is <spanclass=spelle>Cygwin's way of saying 'C:nifty'. If your HOMEis on another drive, say D:, use the <spanclass=spelle>cygwin prefix /cygdrive/d. </spanclass=spelle></spanclass=spelle></spanclass=spelle>

Setting the HOMEenvironment variable on Windows: For Win2K/XP right click on 'MyComputer', click on 'Advanced' and 'Environmentvariables'. Add a personal environment variable HOME with value, e.g.,C:cygwinhomenifty (or if you did the ln businessabove, C:nifty). You shouldn't need to reboot.

For Win9x/Me, youmust put a line in your autoexec.bat file (usually C:autoexec.bat) which setsit, e.g.,

<spanclass=grame>set HOME=C:cygwinhomenifty </spanclass=grame>or<spanclass=grame>set HOME=C:nifty</spanclass=grame>andreboot. Be sure to edit the autoexec.bat with a text editor (like Notepad) andnot a word processor (like Word).

By the way, environmentvariables are useful for a variety of programs; this is where you would setyour CVS_RSH, ANT_HOME, JAVA_HOME, and JIKESPATH if you were a Java programmerusing cvs with ssh.If you wanted Cygwin commands available from DOSprompts you would append ';C:cygwinbin' toyour PATH variable.

Checking the homein the /etc/passwd file on Windows: In your <spanclass=spelle>cygwin</spanclass=spelle>

root install folder (C:cygwin) there is a folderetc/ containing a file 'passwd' (if thisfile is missing it can be created with the cygwincommand 'makepasswd'). The lines in thisfile contain fields separated by colons (:). In a new cygwininstallation the last line will be for your Windows user name. The last fieldwill be '/bin/bash'. Make sure the next-to-last field in the line foryour Windows user name is '/home/nifty', (it'sOK if 'nifty' is a link). Do not use Windows 'C:'notation. Be sure to edit the /etc/passwd file with atext editor (like Notepad or Wordpad) and not a wordprocessor (like Word).

If the <spanclass=spelle>Cygwin</spanclass=spelle>

shell doesn't open in $HOME: On some <spanclass=spelle>some of my installations the CygwinBash shell did not open in $HOME but in /usr/bin (theprompt was '/usr/bin $', not, e.g.,'nifty/ $'). One way to fix this is to put a file '.<spanclass=spelle>bash_profile' constainingthe line 'cd $HOME' into your $HOMEdirectory. This is another file which must be created with a text editor. </spanclass=spelle></spanclass=spelle>

Linux and Windows

OpenSSH<spanlang=en-us>

to OpenSSH(ssh2)

</spanlang=en-us>

Check that <spanclass=spelle>ssh</spanclass=spelle>

functions at all: SSH canreplace telnet even without keys. Suppose you are connecting to the remotecomputer foobar.edu. as user 'dude'. Run $ <spanclass=spelle>ssh dude@foobar.edu</spanclass=spelle>The sshwill ask if you want to keep connecting, type 'yes', and then itshould ask for your password and open a shell in dude's home directory on <spanclass=spelle>foobar, just like telnet. If this fails, there is a problemsomewhere. Make sure everything is set up right on your end, and also make surethat foobar is accepting <spanclass=grame>ssh</spanclass=grame> connections. If it's not, you're wasting yourtime. </spanclass=spelle>

Once <spanclass=spelle>ssh</spanclass=spelle>

is functioning we will set upthe keys so it will no longer be necessary to send passwords. If you arecurious about the theory of this then read up on 'public keycryptography'.

Create your keys:You need to create private and public sshkeys and put them in the proper place with the proper permissions. In your homedirectory create a folder .ssh ($ mkdir.ssh), if there is none. Create the keys with thecommand

$ <spanclass=spelle>ssh-keygen -t </spanclass=spelle>

dsa

The ssh-keygenprogram will ask for a passphrase, just hit the'Enter' key unless for some reason you know you want a <spanclass=spelle>passphrase. This creates the keys id_dsaand id_dsa.pub and puts them in .ssh/.The private key id_dsa must be readable only by you;change its permissions with </spanclass=spelle>$ <spanclass=spelle>chmod 600 .</spanclass=spelle>

ssh/id_dsa

Put the public keyon the remote computer: In this section we are assuming the remote computer isalso running OpenSSH. Somehow, you must get the .<spanclass=spelle>ssh/id_dsa.pub</spanclass=spelle>

key onto the remote computer, whether byemail, ftp, carrying it over on a floppy (sneakernet),etc.; the cool way to do it is to use scp,which was installed along with ssh. Suppose theremote computer is named foobar.edu, and your account there is'dude'. To copy the file to foobar, run $ <spanclass=spelle>scp .ssh/id_dsa.pubdude@foobar.edu: </spanclass=spelle>Don't forget the trailingcolon. You will be asked for dude's password on foobarbefore the copying commences. The file will be copied to dude's home directoryon foobar.

Install the publickey on the remote computer: (We assume the remote computer is running <spanclass=spelle>OpenSSH</spanclass=spelle>

on Linux or UNIX!) Once id_dsa.pubis on the remote computer, login into the remote computer (you can use <spanclass=spelle>shh to login as described above). From your home directory(where you should see your newly arrive id_dsa.pub)create a .ssh folder if none exists. Then append yourid_dsa.pub to a file in .sshwith </spanclass=spelle>$ <spanclass=grame>catid_dsa.pub >> .</spanclass=grame>

<spanclass=spelle>

ssh/authorized_keys

</spanclass=spelle>

This will create the file <spanclass=spelle>authorized_keys if none exists. The id_dsa.pubkey may be removed from the remote computer's home directory, if you like. The.ssh folder on the remote computer must have thecorrect permissions, you may set them with </spanclass=spelle>$ <spanclass=spelle>chmod 4755 .</spanclass=spelle>

ssh

You can also try: <spanclass=spelle>chmod -R go-rw ~/.<spanclass=spelle>ssh on the remote computer.</spanclass=spelle></spanclass=spelle>Checking the password-lessconnection: Now the command $ <spanclass=spelle>ssh dude@foobar.edu</spanclass=spelle><spanclass=grame>should give you a password-less connection to foobar.edu.Likewise, scp should be password-free.</spanclass=grame>

By the way, allthe commands you do by first logging into the remote computer can be doneremotely using ssh. See thedocumentation for details.

-----------------------------------------

Add Ssh Keys

Only two things are infinite: the universe and human stupidity. I'm not sure about the former.
-- Albert Einstein