Trojaned ssh daemon original sshd binära alternativ


OpenSSH är det främsta anslutningsverktyget för fjärrloggning med SSH-protokollet. Den krypterar all trafik för att eliminera avlyssning, kopplingskapning och andra attacker. Dessutom erbjuder OpenSSH en stor serie av säkra tunnelingskapacitet, flera autentiseringsmetoder och sofistikerade konfigurationsalternativ. OpenSSH har utvecklats av några utvecklare av OpenBSD Project och gjort tillgängligt under en BSD-stil licens. OpenSSH ingår i många kommersiella produkter, men mycket få av dessa företag hjälper OpenSSH med finansiering. Bidrag till OpenSSH kan skickas till OpenBSD Foundation. Den här webbplatsen Copyright copy 1999-2017 OpenBSD. Cygwin SSH Installation Cygwin SSH-servern är en emulering av UNIX-miljön och OpenSSH för Windows. Innan du konfigurerar Cygwin SSH bör du referera till README som finns i Cygwin-paketfördelningen under usrsharedocCygwinopenssh. README. Ytterligare information finns i Cygwin Användarhandbok. Nedan följer en överblick över SSH installationsprocessen. SSH-klientinställning Den maskin som kör bläddringsskriptet kräver endast SSH-klienten. För att konfigurera en Cygwin SSH fortsätt med följande. Logga in som administratör Windows XP - logga in som användare med administratörsbehörighet Windows 2003 Server - logga in som lokaladministratör, det fungerar inte för domänvändare eller domänadministratör. Se till att den nuvarande administratören har ett Windows-lösenordsuppsättning. Om inte, använd kontrollpanel-gtUser-konton för att skapa ett lösenord. Det är en bra idé att logga ut och logga in igen för att verifiera lösenordet har skapats. Skapa en mapp c: cygwin för rotkatalogen och c: cygwinpkg för paketlagringen Ladda ner cygwins setup. exe från cygwin och spara setup. exe i c: cygwin. Du kan välja att köra den direkt från nedladdningssessionen eller klicka på Start-gtRun och skriv: c: cygwinsetup. exe. När du startar setup. exe kommer du att hälsas av quotCygwin Net Release Setup Programquot ltNextgt. Om du antar att du inte redan har paket nedladdade till din maskin ska du välja standard quotInstall från Internetquot. ltNextgt. Root-katalogen är den plats där de slutliga installerade binärerna kommer att leva. Välj en plats. Det rekommenderas att du använder en sökväg som inte innehåller mellanslag. Av den anledningen väljer du c: cygwin som du tidigare skapat. Att välja quotAll Usersquot för quotInstall Forquot-alternativet tillåter andra användare att använda SSH. Standard textfiltyp - Unix binär rekommenderas. ltNextgt. Du kommer att bli ombedd att quotLocal Package Directoryquot typ: c: cygwinpkg. ltNextgt. Välj anslutningstyp. Välj vad som är tillämpligt. quotDirect Connectionquot är förmodligen tillämplig i de flesta fall ltNextgt. Välj en nedladdningssida som ligger närmast dig. ltNextgt. Nästa fönster visar olika programvarupaket som finns tillgängliga. Leta reda på openssh-paketet. Den är bosatt under quotNetquot-trädet. Genom att klicka på ordet quotskipquot väljer du paketet som resulterar i att en quotxquot visas i rutan Binary. Om du väljer openssh väljer du automatiskt openssl eftersom det är ett som krävs av openssh. Om du inte vill ha källkoden lämnar du den andra kryssrutan avmarkerad. Klicka bredvid installationen av Cygwin (det nödvändiga baspaketet) och SSH. Storleken på dessa paket är mer än 50 MB. När Cygwin-paketen har installerats har du möjlighet att skapa ikoner på skrivbordet. ltFinishgt SSH Server Setup Varje maskin som kör en browsechild-klient måste köra en SSHD-demon. För att kunna konfigurera Cygwin SSHD-servern måste du först klara de initiala kvitton-klient-inställningarna. Om du ska anta och behålla SSHD-miljön efter att ha kört bläddringsmarkeringen kan du läsa de anpassningsbara funktionerna och konfigurationsalternativen som presenteras i Cygwin Users Guide. Dessa alternativ inkluderar inställningen av miljövariabeln ntsec (NT Security) och modifiering av din PATH för att inkludera c: cygwinbin. För att konfigurera SSHD måste du åtminstone öppna ett Cygwin-fönster (genom att dubbelklicka på Cygwin-ikonen) och skriva: Du kommer att bli uppmanad att svara på några frågor. Frågorna varierar beroende på om du vill köra SSHD som en tjänst eller inte. När du är klar, starta SSHD-servern. Startat som en tjänst: Startat på kommandoraden i ett Cygwin-skal: Upphovsrätt 1996, 2016 Perforce Software, Inc. Senast uppdaterad: DatumTid: 20160412 15:41:50 Steve Friedls Unixwiz Tech Tips Många användare har implementerat Secure Shell (ssh) till tillhandahålla skyddad åtkomst till ett avlägset Linux-system, men inser inte att genom att tillåta lösenordsautentisering är de fortfarande öppna för brutala kraftattacker från var som helst på internet. Det finns maskar som löper på Internet, vilket gör ett effektivt jobb med att hitta svaga användarnamppassordkombinationer, och dessa stoppas inte av användningen av Secure Shell. Denna Tech Tips beskriver hur du använder den kostnadsfria PuTTY SSH-klienten för att ansluta till ett Linux-system som kör OpenSSH-servern, samtidigt som du använder public key-kryptering och SSH-agent support. Mycket av denna information gäller alla OpenSSH-installationer på alla UNIX-system - Solaris, BSD, OpenServer - men vi har justerat detta till Linux-plattformen när specifika krav krävs. Installation och enkel configlogin Om du vill ha fullständig lösenordslös, agentbaserad åtkomst krävs många steg, så bra närma dig detta i steg genom att först tillhandahålla regelbunden lösenordsadkomst till systemet. Detta möjliggör testning av den ursprungliga installationen och möjligheten att logga in innan du aktiverar de mer avancerade funktionerna. Ladda ner och installera programmen Till skillnad från de flesta Windows-program behöver PuTTY-suite inte ett installationsprogram: de enskilda. EXE-filerna släpps helt enkelt i en katalog där de körs direkt. Vi beundrar ekonomin och stilen som PuTTYs författare demonstrerar. Filerna kan släppas in i vilken katalog som helst i användarkommandon, och vi brukar använda C: BIN (se nästa punkt för hur du konfigurerar detta). Fem filer ska laddas ner från PuTTY-webbplatsen. PuTTY. exe mdash Secure Shell-klient PuTTYgen. exe mdash SSH publicprivate-nyckelgenerator Pagent. exe mdash SSH-nyckelagent PSCP. exe mdash Säker kopia från kommandoraden PSFTP. exe mdash Säker kopia med FTP-liknande gränssnitt Försäkra dig om att installationskatalogen finns i kommandot väg Även om det är möjligt att köra PuTTY med en hel sökväg eller genväg, är den praktiskt användbar när den är fullt tillgänglig vid CMD-prompten för att komma åt eller kopiera filer var som helst i filsystemet. Högerklicka på Den här datorn på skrivbordet och välj Egenskaper. Klicka på fliken Avancerat högst upp och klicka sedan på knappen Miljövariabler. Detta ger dialogrutan som visas till höger. Det finns alltid PATH-variabel i avsnittet Systemvariabler, och ibland även i användarvariablerna. Endast administratörer har tillgång till systemvariabler, så rediger eller lägg till PATH efter behov. Vi lägger vanligen den nya katalogen i början av sökvägen, och den skiljs från resten av listan med en semikolon. Klicka på OK för att spara alla ändringar. Skapa en genväg på skrivbordet PuTTY används ofta kraftigt av en IT-arbetare, så det är bra att ha en genväg på skrivbordet för att göra det enkelt att komma åt. För att lägga till detta, högerklicka på skrivbordet och klicka på Ny genväg. Varken Bläddra till eller skriv in namnet på sökvägen till PuTTY-körbar. I vårt exempel har det varit C: binputty. exe. Klicka på OK och ge genväg ett bekvämt namn. Starta PuTTY och konfigurera för målsystemet Starta PuTTY via genvägen, och det kommer att visa konfigurationsdialogrutan: det finns många alternativ här. Tja fyll i flera för att ge passordad tillgång till systemet, och konfigurera sedan för offentlig nyckelåtkomst senare. Kategori: Värdnamn: dbserver Protokoll: () SSH-anslutning. Data Automatisk inloggning användarnamn: steve Connection. SSH Preferred SSH Protocol Version: () 2 Endast när dessa enkla inställningar har angetts kan de sparas för att göra det enkelt för nästa gång. Klicka på Session till vänster och ange ett namn i sparade sessioner - det här namnet brukar vara relaterat till den maskin du ansluter till. Klicka på Spara för att lagra dessa inställningar i registret: weve valt namnet Databas server. Logga in Med de sparade inställningarna från föregående steg, vill du använda dem för att ansluta till målsystemet. Starta PuTTY (om det inte redan är öppet), och i avsnittet Session, klicka på namnet på den sparade sessionen och klicka på Ladda. Klicka på Öppna för att starta anslutningen. När du uppmanas ange lösenordet för ditt konto på fjärrsystemet, och om det är korrekt får du ett skal. Nu kan du börja arbeta med systemet. Men - varje gång PuTTY ansluter till en server, utbyter den identifiering i form av värdnycklar. Om värdnivån är okänd, eller matchar inte vad vi tidigare sett, varnar det användaren. För okända värdar är det för det mesta en proforma-operation, men för tidigare kända system kan det föreslå att värden inte är den samma som ursprungligen ansluten. Värdtangenter som har ändrats utan varning kan inträffa när måloperativsystemet installeras om utan att återställa värdnycklarna från säkerhetskopiering, eller det kan vara något mer häftigt, som en skurk värd som maskerar som den äkta. Man bör alltid fråga om oväntat ändrade värdnycklar Skapa och använda flera sessioner När användaren bara behöver ansluta till ett system kan man programmera i dessa parametrar i standard sessionen, men det är mycket vanligare att få åtkomst till flera system. Med lite setup kan vi enkelt skapa och ansluta till dessa system med ett klick. Skapa och spara sessionerna Som vi gjorde i föregående avsnitt, skapa och spara så många namngivna sessioner efter behov och notera sessionsnamnen. Dessa namn kan refereras på kommandoraden med parametern - load, och kan inbäddas i genvägen. Högerklicka på genvägen och välj Egenskaper, och ange parametervärdet tillsammans med namnet på sessionen (i citat om det behövs). Klicka på OK för att spara genvägsegenskaperna. Det är också en bra idé att byta namn på genvägen för att återspegla serverns namn som den ansluter till: högerklicka på genvägen och välj Byt namn på. När genvägsgenvägen är helt konfigurerad, startar du dubbelklickningen på ikonen. Skapa så många förprogrammerade genvägar som behövs. Skapa och installera en publicprivate keypair Den verkliga effekten av Secure Shell kommer till spel när publicprivate keys används. Till skillnad från lösenordsautentisering görs public key access genom att utföra en enstaka skapelse av ett par mycket långa binära nummer som är matematiskt relaterade. Det ursprungliga konfigurationssteget är måttligt inblandat, men behöver bara göras en gång: När en gång har skapats kan nyckeln enkelt installeras på så många fjärrsystem som önskat. Kör PuTTYgen Ett par publicprivate keys mdash små filer som innehåller mycket stora binära nummer mdash krävs, och PuTTYgen gör det här. Det går bara en gång att skapa ett personligt par nycklar, som sedan installeras när det behövs. Klicka på Start. sedan kör. skriv sedan in puttygen i kommandoraden. Detta visar huvuddialogrutan, som visas till höger. Välj nyckelparametrar som visas och klicka sedan på Generera. Eftersom DSA-tangentbordet är fixerat till 1024 bitar, och RSA-knappsatsen kan göras mycket större rekommenderar vi en 2048 bitars RSA-nyckel. Observera att standardinställningen är 1024 bitar, du måste manuellt åsidosätta för att välja 2048. Obs! Skapa inte en SSH version 1-nyckel av något slag: de är inte säkra. Du kommer att uppmanas att skapa lite slumpmässighet genom att flytta musen runt: detta ger systemet ytterligare entropi som hjälper till att skapa bättre nycklar. Det tar bara några sekunder att helt generera tangentbordet. Skydda och spara nycklarna Nu har tangentbordet genererats, men existerar bara i PuTTYgens minne: det måste sparas på disk för att det inte ska användas. Även om den offentliga nyckeln inte innehåller någon känslig information och kommer att installeras på fjärrsystem, måste den privata nyckeln skyddas kraftigt: den som känner till den privata nyckeln har full körning av alla fjärrsystem. Den privata nyckeln skyddas vanligen med ett lösenordsfras, och denna fras anges två gånger i de angivna fälten. Kommentaren är valfri men är vanligtvis e-postadressen till nyckelägaren. Det kan också bara vara ägarens namn. Glöm inte lösenordsfrasen, den är inte användbar utan det. Den genererade nyckeln måste nu sparas, och detta görs i tre delar: Spara den offentliga nyckeln och spara den privata nyckeln båda frågar efter ett filnamn och den privata nyckeln (med. ppk-tillägg) ska sparas på ett säkert ställe. Den offentliga nyckeln är i standardformat och kan användas direkt eller indirekt av annan programvara och det ser ut så här: Den privata nyckeln är i ett PuTTY-specifikt format som inte kan användas av någon annan programvara. Det kommer aldrig att ses direkt av operatören. Installera den offentliga nyckeln på Linux-systemet Med puttygen fortfarande öppen markerar du hela Public Key för att klistra in i OpenSSH authorizedkeys-filområdet och skriv kontroll-C för att kopiera till det lokala systemklippet. Detta är i huvudsak samma data som hittades i den sparade public key-filen, men i en form som kan användas direkt på Linux-systemet. Logga in på Linux-datorn med hjälp av kontot lösenord, skapa. ssh-katalogen om det behövs, och rediger sedan filen. sshauthorizedkeys. Detta kommer att bli en textfil, och urklippet ska klistras in i det. Den offentliga nyckeln kommer bara att vara en lång rad, och det är väldigt enkelt att klistra in data på ett sätt som avkortar de första tecknen. Detta gör nyckeln oanvändbar, så var säker på att nyckeln börjar ssh-rsa eller ssh-dsa. Spara filen. Försäkra dig om att både. ssh-katalogen och filerna i den endast kan läsas av den nuvarande användaren (det här är en säkerhetsåtgärd), och detta kan uppnås genom att använda chmod-kommandot med parametrar som gäller hela katalogen: Logga ut från systemet. Obs - filen authorizedkeys måste ägas av användaren och oreadableunwritable av någon annan - OpenSSH-servern kommer att neka inloggningar om det inte är fallet. Man kan kontrollera detta med kommandot ls: Filen måste vara läget - rw -------. Fäst den privata nyckeln till SSH-sessionen Nu när publicprivate keypair har skapats kan den associeras med en SSH-session. Först gör du det här i PuTTY genom att starta programmet och ladda den aktuella sessionen. Navigera till Connection. SSH. Auth i kategorin rutan till vänster, fyll sedan i den privata nyckelfilen för autentiseringsfält genom att bläddra till. ppk-filen som sparats tidigare. Obs! Med andra Secure Shell-klienter har vi sett möjligheten att bifoga en privat nyckel till alla sessioner (som en del av en global konfiguration), men med PuTTY verkar det krävas konfiguration för varje session. Var inte säker varför. Återgå till kategori Kategorin Session och spara den aktuella sessionen. Vid denna tidpunkt är PuTTY (på Windows) och OpenSSH (på Linux) konfigurerad för säker, allmännyttig åtkomst. Anslut via den offentliga nyckeln Nu när konfigurationsstegen har slutförts, var redo att faktiskt logga in med den allmänna nyckelmekanismen, vilket helt undviker lösenordssteget. Anslut säkert Starta PuTTY med alternativ för att ladda den sparade sessionen med den privata nyckeln: I stället för att fråga om lösenordet för kontot (vilket kommer att skilja sig från varje fjärrsystem), begär det istället lösenordsfrasen som skyddar den lokala privata nyckeln. När den privata nyckeln passar in i den offentliga nyckeln på OpenSSH-servern, erhålls åtkomst och ett skal som presenteras för användaren. Det är viktigt att notera att även om användaren måste skriva ett hemligt ord när han loggar in, är lösenfrasen associerad med den lokala privata nyckeln. inte fjärrkontot. Även om användarens allmänna nyckel är installerad på 1000 olika fjärrservrar, krävs samma lösenord för privat nyckel för alla. Detta förenklar i hög grad uppgiften att komma ihåg access credentials och uppmuntrar valet av starka, säkra. Inaktivera lösenordsautentisering på OpenSSH När användarna offentliga och privata keypair är verifierade som korrekta kan du helt och hållet avaktivera lösenordsautentisering på Linux-servern. Detta förhindrar helt och hållet alla möjliga lösenordsgissar och försäkrar dramatiskt en maskin. För maskiner som inte är fysiskt lokala är det dock klokt att skjuta upp inaktiveringen av lösenordsautentisering tills det är helt klart att nyckelåtkomsten fungerar korrekt, speciellt om flera användare är inblandade. När lösenordsautentisering har inaktiverats, tillåter inte root-lösenordet en till systemet. De nya tillgångarna till allmänhetens nyckel uppmuntras att testa mycket noggrant. Konfigurationen av SSH Daemon finns i filen sshdconfig, som ofta lagras i etcssh-katalogen. Det här är en textfil som är relativt lätt att läsa och letar efter två poster för att ändra. Först är att ställa in PasswordAuthentication till värde nr. Detta kan uttryckligen sättas till ja. eller det kan kommenteras att förlita sig på standardvärdet, men vi vill uttryckligen avaktivera detta: För det andra vill vi avaktivera SSH-protokollversion 1: det här är gammalt, har flera betydande säkerhetsbrister och bör inte tillåtas från omvärlden . Redigera konfigurationsfilen och se till att de två sökordsposterna är inställda korrekt kommentera de gamla posterna om det behövs. När konfigurationsfilen har sparats måste Secure Shell-demonen startas om på de flesta plattformar, vilket kan göras med servicemekanismen: Detta dödar lyssningsdemonen och startar om det men avslutar inte några existerande enskilda användarsessioner. De som känner det här kan vara ett riskabelt steg, uppmanas att helt enkelt starta om maskinen. Vid denna tidpunkt accepterar OpenSSH inte längre lösenord av något slag, med tillgång endast beviljad för användare med förinställda offentliga nycklar. Aktivera SSH Agent Support Fram till den här tiden tillhandahöll weve ett stort sätt att säkerställa systemåtkomst, men det är fortfarande inte hemskt bekvämt: vi måste fortfarande skriva en (förhoppningsvis) komplex lösenordsfras varje gång. Detta kan bli tråkigt när ett stort antal system är involverade. Lyckligtvis tillhandahåller SSH-sviten en underbar mekanism för att låsa upp den privata nyckeln en gång och tillåter individuella ssh-anslutningar att piggyback på det utan att fråga för lösenordsfrasen varje gång. Starta agenten Navigera till och starta pageant. exe-programmet från samma plats som de andra PuTTY-relaterade filerna, och det kommer att sätta sig in i systemfältet (längst ner till höger vid klockan). Dubbelklicka på ikonen i facket och det startar en dialogruta med en tom lista med nycklar. Klicka på Lägg till nyckel och navigera till. ppk-filen som innehåller din privata nyckel. När du uppmanas till lösenordsfrasen anger du den och klickar på OK. Klicka på Stäng för att avvisa agenten. Nu startar du en av de redan konfigurerade SSH-sessionerna till en pubkey-säker fjärrd värd: den kommer att fråga agenten för den privata nyckeln, byta den med fjärrkontrollen och ge åtkomst utan ytterligare användarintervention. Obs! Den omtänksamma läsaren kanske undrar hur agenten lagrar data, och om otillförlitliga program kan få den här hemliga nyckeln surreptitiously. Var inte säker på hur det fungerar, men vi har aldrig hört talas om verkliga säkerhetsproblem på den här fronten. Tja uppdatera detta dokument om vi lär oss något. Förläng privat nyckel Det första som många PuTTY-användare gör när man loggar in i systemet för dagen är att starta agenten och lägga till den privata nyckeln. Det här är bara några steg, men vi kan optimera det bara lite mer. Om vi ​​startar agenten med den privata nyckelfilen som parameter, laddar den automatiskt nyckeln. Navigera till pageant. exe och högerklicka för att kopiera den här ikonen. Klistra in det som en genväg på skrivbordet, högerklicka och välj Egenskaper. Ange den fullständiga sökvägen för. ppk privat nyckelfil som parameter och spara sedan ändringarna. Dubbelklicka på den här ikonen kommer att ladda keyfilen och kräva lösenordsfrasen. En gång in, det är sista gången det behövdes så länge agenten sitter fast. Det är väldigt lite att inte tycka om SSH-agentens stöd. Agent Vidarebefordran Men vi har inte uttömt fördelarna med SSH-agent support. Det är en klar vinst för att undvika att skriva lösenordsfrasen varje gång en ny anslutning startas, men SSH tillhandahåller också Agent Forwarding som kan överföra referensuppgifterna nerför anslutningen till fjärrservern. Denna referens kan sedan vidarebefordras till en annan server där användarens allmänna nyckel har installerats, avviker lösenord eller den hemliga lösenfrasen under hela nätverksnavigeringen. Användaren startar en anslutning till Server A: PuTTY på den lokala maskinen får den privata nyckeln från agenten och ger den till fjärrservern. Fjärrserver hanterar de offentliga och privata nyckeldata och ger tillgång till. Användaren får ett skal på det lokala systemet. Användaren försöker ansluta till SystemB med ssh - A systemb (-A möjliggör agenter vidarebefordran), och det ansluts till SSH-servern där. System B frågar system A för användarens privata nyckeldata och SSH-servern på system A skickar den här tillbaka till den ursprungliga arbetsstationen där agenten är frågad. Den lokala agenten överför dataen till anslutningen, där den vidarebefordras från SystemA till SystemB. SystemB tar emot denna referens, och åtkomst beviljas genom att jämföra med den offentliga nyckeln som lagras på den maskinen för den användaren. Detta händer automatiskt och snabbt: det tar inte mer än en sekund eller två för hela utbytet att ske, och denna vidarebefordran kan gå över ganska lång kedja av SSH-anslutningar. Detta ger en säker och säker tillgång till ett brett spektrum av fjärranslutna system. Obs! Allt detta kräver att användaren har ett konto för varje maskin i fråga och att användarens allmänna nyckel är korrekt installerad på var och en. SSH vidarebefordran ger inte någon åtkomst som inte skulle beviljas frånvarande vidarebefordran det bara lägger till en mer bekväm mekanism till vad som redan tillhandahållits. Aktivera vidarebefordran i PuTTY Aktiveringsagentens vidarebefordran görs i PuTTY-konfigurationsdialogrutorna, ungefär som resten, och bara en extra låda måste kontrolleras. Det här alternativet kräver självklart användningen av språket på det lokala systemet - utan en agent finns det inget att vidarebefordra. Om en nyckelskyddad anslutning försökas utan att någon agent är närvarande, kommer PuTTY helt enkelt att be om lösenordsfrasen som den har hela tiden (och kommer att göra det på varje anslutning). Aktivera vidarebefordran på servern I exemplet ovan såg vi att användaren skrev ssh - A-värd. men det är vanligt att göra Använd agent som vidarebefordrar standardinställningen för att ta bort behovet av att skriva - A. OpenSSH-serverkonfigurationen finns i sshdconfig. medan klientkonfigurationen är i sshconfig (vanligtvis i massh-katalogen). Filen kan redigeras och inställningen ForwardAgent ställs till ja: Den här inställningen påverkar inte servern, så det kräver ingen omstart eller specialoperation för att den ska träda i kraft: nästa utgående anslutning aktiverar vidarebefordran automatiskt. Denna ändring behöver endast göras en gång (och det är standard på vissa system). Kopiera filer på ett säkert sätt Med konfigurationen av PuTTY var public key access och agent support (med vidarebefordran) beredda att gå utöver terminal shell access och flytta filer runt. Secure Shell tillhandahåller flera metoder för att kopiera filer från en maskin till en annan, alla arbetar tillsammans med samma nycklar och agenter. PSCP möjliggör kommandorad kopiering av filer till och från en fjärr SSH-server, och PSFTP ger ett FTP-liknande gränssnitt för bekväm filöverföring. Tja diskutera båda. PSFTP - en FTP-liknande klient PSFTP-programmet kan startas från kommandoraden eller från en skrivbordsgenväg och i båda fallen accepterar antingen ett värdnamn eller ett sparade sessionsnamn. När den lanseras kopplas den till målservern (fullt ut utnyttja de offentliga nycklarna och den lokala agenten, om någon) och presenterar en psftpgt-prompten: Vanliga användare av kommandorads FTP-klienter kommer att hitta detta bekant, men det är verkligen inte upp till användarvänlighet som populära GUI-klienter. Hjälpkommandot kan ge lite vägledning. PSCP - Secure Copy-användare på kommandoraden kan vilja kopiera filer direkt, och detta görs med pscp. kommandot Secure Copy. Precis som att kopiera vanliga filer på det lokala filsystemet tar pscp ett maskinnamn och en katalog som en källa eller destination. pscp kan överföra en fil åt gången, eller en hel uppsättning i en enda instans: Det är underbart att det sparade sessionsnamnet inte behöver tillhandahållas bara värdnamnet och det aktuella användarnamnet (som vanligtvis tas automatiskt från miljön. Det verkar som psftp och pscp både konsultera listan med sparade sessioner, hitta en lämplig matchning och använd sedan åtkomstinformationen. Det ger en smidig filöverföring. Säkerhetshinder och Finer-poängen Denna Tech Tip har till syfte att ge en snabb väg till inställning upp en säker Shell-miljö från arbetsstation till server, men den har hoppat över många av de finaste punkterna. Hela poängen med att använda Secure Shell är Säkerhet och vi måste vara ombedda om vi inte rörde några av dessa punkter här. peka på att man måste vara försiktig när man arbetar på ett otillförlitligt system: när man använder avancerade funktioner som agenter vidarebefordran eller privata nycklar, är en till förmån för en fientlig operatör. Kärnbaserade keyloggers och trojanerade binssh bi naries är bara några av många uppenbara risker när de arbetar i den typen av miljö. Här är det bra att ta reda på några av de osynliga punkterna och notera att i en pålitlig och kontrollerad miljö uppstår dessa problem helt enkelt inte. Skydda din privata nyckel Även om den offentliga nyckeln bara är av mindre betydelse, måste den privata nyckeln skyddas kraftigt. Den som kan komma till den dekrypterade privata nyckeln (antingen genom att lära lösenordsfrasen eller brute-force it) har full körning av alla nätverk där den offentliga nyckeln är installerad. Vi rekommenderar starkt att du dramatiskt begränsar antalet platser där den privata nyckeln hålls. Vi antar att det finns applikationer som kan ta en privat nyckelfil och försöka brute-force nyckeln, men vi har ännu inte kört över en. Användning av agenter kräver betrodda maskiner Närhelst ett SSH-nyckelagent är närvarande, oavsett om det är på den lokala maskinen som initierar den utgående anslutningen eller på mellanliggande maskiner som vidarebefordrar dem, är det tekniskt möjligt för interlopers på dessa maskiner att få tillgång till den säkra kanalen . I OpenSSH kommunicerar en ssh-klient med agenten via ett UNIX-domänuttag under tmp-katalogen (en representativ fil är tmpssh-DeB10132agent.10132) och den är begränsad till den lokala användaren. Men superusers har också tillgång till uttaget, och det är relativt enkelt att kapa agenten för att ansluta till samma målmaskin. Relaterade resurserLinux och Unix sftp-kommando Om sftp sftp står för säker FTP. Det är ett kommandoradsprogram för att överföra filer säkert via en nätverksanslutning. Du kanske redan är bekant med FTP: det är en mycket enkel och mycket osäker metod för att ladda upp eller ladda ner filer via en nätverksanslutning. Det ger inte någon form av säkerhet eller kryptering i sessionen eller i dataöverföringen. sftp tillhandahåller denna funktionalitet. Tänk på det som en krypterad version av ftp. Obs! Om du behöver överföra filer via anonym FTP, är sftp inte det program du ska använda. Eftersom alla sftp-anslutningar är krypterade behöver de ett användarnamn och lösenord (eller public key authentication). Så, för anonyma FTP-överföringar, använd bara vanlig ftp. sftp-syntax sftp utför alla operationer över en krypterad ssh-session. Den använder många av funktionerna i ssh. såsom public key-autentisering och datakomprimering. Det finns fyra grundläggande sätt att använda sftp. och kommandotyntaxen för varje listas här. (Mer information om varje alternativ och dess möjliga värden finns i avsnittet Alternativ nedan). Den första är en interaktiv session. I det här läget kopplar sftp till och loggar in i den angivna värden. går sedan in i sitt interaktiva kommandot läge, där du skriver alla dina kommandon med en snabb uppgift. För att starta en interaktiv session av sftp. använd följande syntax: Se interaktivt läge för ett exempel på att använda sftp på så sätt. Du kan också använda sftp för att hämta filer automatiskt, utan någon efterfrågad interaktion: Se Automatisk hämtningsläge för ett exempel på att använda sftp på det här sättet. Eller du kan berätta för sftp att starta sin interaktiva session i en viss fjärrkatalog: Slutligen kan du köra en helt automatiserad session med alternativet - b. B står för batch-läget. För att använda batch-läget är det nödvändigt att konfigurera icke-interaktiv autentisering, till exempel autentisering av offentliga nycklar, så att du inte behöver skriva in ett lösenord manuellt. SFTP-syntaxen för det här läget är: För exempel på hur du använder batchläge och en guide för att ställa in autentisering av public key, se Batch Mode. Här är en beskrivning av var och en av alternativen som anges i kommandotyntaxerna som listas ovan. Ange användningen av protokollversion 1, som går tillbaka till 1997. Detta alternativ ger kompatibilitet med mycket gamla servrar. Om du inte är säker på att du behöver det, ange inte det här alternativet. Ange användningen av protokollversion 2, som går tillbaka till 1997. Detta alternativ ger kompatibilitet med mycket gamla servrar. Om du inte är säker på att du behöver det, ange inte det här alternativet. Kommandon för interaktivt läge är okänsliga, så det spelar ingen roll om du stavar dem med stora bokstäver eller små bokstäver (eller en blandning av båda). Filnamn är dock fortfarande skiftlägeskänsliga. Alla fil - eller katalognamn som innehåller mellanslag måste bifogas citat, eller servern tolkar dem som separata namn. Automatisk hämtningsläge I det här läget kan du ange exakt sökväg för filen (eller filerna) du vill hämta i sftp-kommandot själv. Om du till exempel vill hämta filen documentsportfolio. zip från fjärrserveren files. myhost (där ditt användarnamn är myname) kan du använda kommandot: När du kör detta kommando kommer sftp att ansluta till files. myhost. fråga dig för ditt lösenord, och när du är autentiserad försöker du ladda ner filen documentsportfolio. zip. Eftersom vi inte satte ett snedstreck i början av katalognamnet kommer det att leta efter dokument i din hemkatalog på servern. Om den hittar portfolio. zip. den kommer ladda ner den. Utgången kommer att se ut så här: och sedan sftp kommer helt enkelt att gå ut. Du kan också ange en plats för filen som ska hämtas. Till exempel kommer detta kommando: ladda ner portfolio. zip till din tmp-katalog. Eller du kan ange ett helt annat namn för den nedladdade filen: och utgången kommer att ange det nya filnamnet: Du kan också ange jokertecken i filnamnet, till exempel: och sftp hämtar alla filer med filtillägget. zip i dokumentets fjärrkontroll katalogen. Utgången kommer att lista varje fil på egen rad, så här: Starta interaktivt läge i ett specifikt fjärrkatalog Ibland är det bekvämare att starta en interaktiv lägesession direkt från en viss fjärrkatalog. Du kan göra detta genom att ange det på kommandoraden: Batch Mode Det är också möjligt att köra sftp på ett helt skript. Detta kallas batch-läge. och det låter dig göra sftp-överföringar utan någon interaktion på tangentbordet. This is useful, for instance, if you want to set up a recurring transfer in a cron job, or a one-time scheduled transfer using the at command. However, because batch mode is completely non-interactive, it does not allow you to enter a username and password when connecting to the server. So, in order to use batch mode, youll have to log in automatically. The standard way to do this, and the most secure, is to use public key authentication . Lets go over that quickly. Setting Up Public Key Authentication Public Key Authentication allows you to log into a remote server securely without typing in your password. First, you generate two keys on your local system: a private key and a public key. Then you copy the text of your public key onto the remote server. After that, as long as you have the private key on your local machine, you can log into the remote machine without typing in a password. To do this, the first step is to generate the public and private keys. The keys will be located in the directory. ssh in your home directory on your local system. First, check to see if the. ssh directory already exists: This will either return the directory name: or tell you that it doesnt exist: If it doesnt exist, we need to create it before the next step: Next, we need to make sure this directory has the correct permissions. You want to ensure that youre the only person who can access this directory (read, write, and execute). For a directory, the octal value of this file mode is 700 . Lets change the permissions on our. ssh directory: Now we need to generate the keys themselves. The program used to generate key pairs for the ssh protocol is called ssh-keygen . Run it at the command line without any options: It will prompt you for the information it needs to generate the keys. Use all the default values (just press enter at every prompt). Note: One of the prompts will ask you for a passphrase, which offers an additional level of security on top of the encrypted private key. Here we will leave the password blank. If you want to use a password with your key, you should use a program called ssh-agent to load your key into memory this will allow you to use a password-protected key without having to type in the password more than once. The output from ssh-keygen will look something like this: Youll even get a neat piece of art representing your public key, which you can print out and hang on your wall, if you like. Your keys are now generated. There are two files, idrsa and idrsa. pub . We need to change the permissions on these files as well, so that no one but you can access them (read, write, and execute). The octal value of these permission bits is 700 . And make sure the directory has the same permission bits set: Now ssh to your server. Lets say its called myhost : Enter your password and log in. Once youre at your servers command prompt, check to see if the. ssh directory exists there. On the server: If it doesnt exist, create it, and give it the appropriate permissions, just like on your local system. On the server: Same for the authorizedkeys file. First check that it exists. On the server: If it doesnt, create it. You can use touch to create an empty file. On the server: Of course, if the directory and file exist already, you dont need to create them. Either way, once you know the. sshauthorizedkeys file exists, you can log out of the server: Which will return you to your local system command prompt. Now you need to place the contents of your local public key file (.sshidrsa. pub . which you created earlier with ssh-keygen ) into the file. sshauthorizedkeys on your server. The contents of this file are all in one very long line (no line breaks). You can look at it yourself with the cat command: and it will look something like this: This line of text needs to be placed into the authorizedkeys file on your server, on its own line. There are several ways to do this: you could copy the text on your local server, open the file using a text editor on the server, and paste it in on its own line. Or, you could use a program called ssh-copy-id . which is part of the default ssh installation on many systems. However, here we will append it directly to the file using ssh itself. If your remote username is myusername and your server name is myhost . you would run this command: This runs the cat command on your public key file, pipes the output to ssh . which takes that input and appends it directly to the authorizedkeys file on the remote machine. Now your public key is installed on the server, and you should be able to log in without a password, as well as conduct batch sftp sessions. Note: If the server is still asking you for your password when you try to log in, check that the servers ssh daemon configuration, located by default in etcsshsshdconfig . contains the following two lines: These are part of the default configuration, so you shouldnt need to add them, set them, or un-comment them in the configuration file. However, they are required for public key authentication. If its not working, this is the first place you should check. Executing The Batch sftp Session To run a batch sftp session, simply create a text file containing the sequence of sftp commands to be run on the server, with each command on its own line. For instance, if you want to automate the uploading of a set of files called image01.jpg . image02.jpg . into a directory on the remote server called images in your home directory, you could create a text file called mybatch. txt which contains the following commands: Then, you would execute the batch with the following command: and sftp will output the results of the commands, for example: After all commands have been executed (successfully or not), sftp will log out and return you to the command line. sftp examples This command attempts to initiate an interactive sftp session with the server myhost . The name used to log in will be the same as the username with which you ran the command. Once you are successfully logged in, you will see a message similar to the following, along with the sftpgt command prompt: Same as the above command, but attempts to log in with the username fred . Attempts to initiate an interactive sftp session with the server myhost . using the name fred to log in. Upon successful login, you will begin the session in the directory homefredimages . Attempts to download the file homefredimagespicture. jpg from the server myhost using the username fred to log in. If the file exists, it will be downloaded to the local working directory, and then sftp will exit. Attempts to execute the sftp commands in the text file batch. txt . on the server myhost . as the user named fred . The commands in the file batch. txt must be listed one per line. In order for the session to be initiated, the server and local client must be configured so that no keyboard input is required to log in see Setting Up Public Key Authentication above for more information. Interactive Command Examples The following examples may be run from the sftpgt prompt once an interactive session has been initiated. See Interactive Mode Commands above for a complete list of interactive commands and options. Prints the name of the remote working directory. Prints the name of the local working directory. List the contents of the remote working directory. List the contents of the local working directory. Changes the remote working directory to the subdirectory documents . Changes the local working directory to the subdirectory documents . Download the remote file mydocs. zip into the local working directory. Download the remote file mydocs. zip into the local directory homefred . If the directory homefred does not exist, sftp will attempt to download the file into the local directory home and name it fred . Note: sftp does not recognize the tilde shortcut for home directories ( ), so you will have to use the complete name of a home directory if youre specifying it in sftp . Download the remote file mydocs. zip into the local directory homefred . giving it the new name downloaded-docs. zip after it is downloaded. Create the directory documents in the remote working directory. Upload the local file documents. zip into the remote working directory. Upload the local file homefreddocumentsdocuments. zip into the remote directory homefreddocuments . renaming it mydoc. zip after it is uploaded. Uplooad all files in the local directory homefredimages whose name starts with image . and ends in the suffix. jpg . into the remote directory homefredimages . Rename the remote file homefredfile. txt . giving it the name newfile. txt . Delete the remote file homefrednewfile. txt . Run the command commandname option1 option2 on your local system without disconnecting from the sftp session. Disconnect from the sftp session, and quit sftp . Related commands ftp mdash Conduct an interactive FTP session over a secure network connection. slogin mdash Login to a remote system securely.

Comments