Jak se připojit k serveru z Windows?

Re:Jak se připojit k serveru z Windows?
« Odpověď #15 kdy: 12. 03. 2019, 15:03:37 »
Spousta editorů má podporu pro sftp (protokol používaný WinSCP), stačí si vybrat. Editovat budete soubory pod vlastním uživatelem. root může číst libovolný soubor, takže pro spuštění toho skriptu nic dalšího nepotřebujete. Pokud chcete, aby byl výsledný skript umístěn někde, kam ten váš uživatel nemá přístup, a vlastníkem byl root, akorát tam na konci ten hotový skript překopírujete a upravíte práva.

Pokud to mermomocí chcete dělat nebezpečně a editovat soubory pod rootem, když na tom serveru můžete udělat sudo -i na roota, máte tam přece efektivně práva roota. Tak prostě přidejte rootovi svůj klíč, povolte přihlašování na ssh přes roota a máte to vyřešené. Vzdálené přihlášení na roota z hlediska bezpečnosti ničemu nevadí. Ten princip, že se veškerá správa dělá přes sudo a root ani nemá heslo, vymysleli v Ubuntu, aby donutili uživatele nepoužívat roota pro běžnou činnost. Vy se tomuhle opatření bráníte zuby nehty, a sudo v tomhle směru opravdu není žádná pojistka, je to jen pomůcka pro lidi, kteří chtějí dodržovat pravidla bezpečnosti.


Re:Jak se připojit k serveru z Windows?
« Odpověď #16 kdy: 12. 03. 2019, 15:19:18 »
Co ti brání v tom, těm souborům co upravuješ nastavit vlastníka toho uživatele co k mim mám mít přístup. Taky tak pracuji mám uživatele co přistupuje na server přes sftp, má povolený zápis do složky /var/www/ a do své domácí složky, přes ssh si tam nainstaluju balíčky co potřebuju, spustím webpack a podobně. A pokud potřebuju něco systémového nastavit (aktualizaci, doménu etc.) přihlísím se jako root.

Re:Jak se připojit k serveru z Windows?
« Odpověď #17 kdy: 12. 03. 2019, 16:07:53 »
Dobra rada: Nauc se pouzivat vim. Je skoro vsude a umi toho vic nez notepad++.

Spatna rada(ale kdyz se chces strelit do nohy): Mozna by pomohlo misto "sudo -i" pouzit "sudo -s"? Ale nezkousel sem to. Je to jen wild guess po prolitnuti manualu sudo.

k3dAR

  • *****
  • 2 838
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Jak se připojit k serveru z Windows?
« Odpověď #18 kdy: 12. 03. 2019, 16:10:08 »
[...]Ten princip, že se veškerá správa dělá přes sudo a root ani nemá heslo, vymysleli v Ubuntu[...]
to je FUD, sudo "Initial release: Around 1980" https://en.wikipedia.org/wiki/Sudo

k3dAR

  • *****
  • 2 838
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Jak se připojit k serveru z Windows?
« Odpověď #19 kdy: 12. 03. 2019, 16:15:15 »
[...] WinSCP [...] jako non-root user [...] Potřebuji po připojení pomocí SCP vyvoval "sudo -i" [...]
mas (spravcem) nastavene (v sudoers) aby jsi pri "sudo -i" nemusel zadavat heslo? protoze pokud ho kdyz jdes pres SSH k mcedit musis zadavat mozna WinSCP ma proto problem, resp. WinSCP nepouzivam, tak nevim zda se pri prihlasovani dokaze zobrazit terminal pro interakci...


Re:Jak se připojit k serveru z Windows?
« Odpověď #20 kdy: 12. 03. 2019, 16:42:39 »
Takže WinSCP je program úplně k ničemu v případě, že nemám k dispozici přihlašovací údaje roota.

Spíš nechápeš, jak funguje, resp. co dělá.

Vilith

  • *****
  • 660
    • Zobrazit profil
Re:Jak se připojit k serveru z Windows?
« Odpověď #21 kdy: 12. 03. 2019, 16:59:20 »
Nauc se vi, resp. vim a vic na "konecne upravy" scriptu (a nejen na ne) nepotrebujes

Re:Jak se připojit k serveru z Windows?
« Odpověď #22 kdy: 12. 03. 2019, 17:03:29 »
to je FUD, sudo "Initial release: Around 1980" https://en.wikipedia.org/wiki/Sudo
Proč se pořád musíte vyjadřovat tak arogantně v reakci na komentář, který jste nepochopil? Já jsem nepsal o sudo obecně, psal jsem o konceptu, že uživatel root ani nemá heslo, nelze se na něj přihlásit (ani změnit přes su) a tudíž se veškerá práce s oprávněními roota dělá tak, že se na každý jednotlivý příkaz volá sudo. To v Ubuntu asi také nevymysleli, ale každopádně tak distribuci nastavili a teprve s Ubuntu se tohle masově rozšířilo.

Bezpečnosti to nijak nepomohlo, když se dneska podíváte na různé návody na internetu, každou chvíli tam najdete příklady, kde je před každým příkazem automaticky sudo, aniž by někdo přemýšlel, zda jsou tam potřeba práva roota nebo ne. Je to samozřejmě úplně špatně, v návodu by maximálně mělo být napsané, pro které příkazy je potřeba root, a je pak na uživateli, aby si svým způsobem zajistil, že to pustí pod rootem. Někdo použije sudo, někdo jiný terminál, kde bude přihlášen pod rootem atd. Dříve se pro to rozlišení používala výzva shellu, výchozí nastavení spousty distribucí bylo takové, že výzva $ znamenala běžného uživatele a výzva # znamenala shell roota.

Mimochodem, používat sudo pro veškerou správu je zneužití toho příkazu – ten vznikl z přesně opačného důvodu, totiž aby daný uživatel mohl vybrané příkazy spouštět s právy roota. Pokud má mít veškerá práva roota, k tomu slouží příkaz su, sudo vzniklo právě proto, abych někomu nemusel dávat celého roota, ale aby pod rootem mohl spustit třeba jedinou binárku. (Což je sice také obrovské riziko, protože většina binárek není nijak speciálně chráněná a ze spousty se tak dá uniknout a získat plného roota, ale je to pořád lepší, než dát toho roota někomu rovnou na stříbrném podnose.)

Vilith

  • *****
  • 660
    • Zobrazit profil
Re:Jak se připojit k serveru z Windows?
« Odpověď #23 kdy: 12. 03. 2019, 17:18:47 »
A co treba vygenerovat rootovi dvojici ssh klicu a pripojovat se na nej pres WinSCP? To taky nejde?

k3dAR

  • *****
  • 2 838
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Jak se připojit k serveru z Windows?
« Odpověď #24 kdy: 12. 03. 2019, 17:50:15 »
to je FUD, sudo "Initial release: Around 1980" https://en.wikipedia.org/wiki/Sudo
Proč se pořád musíte vyjadřovat tak arogantně v reakci na komentář, který jste nepochopil?
co je arogantiho oznacit FUD za FUD? pokud narazis na me minule reakce z vlakna kde jsi mi "vkladal do ust" co jsem nenapsal a dokola motal "AndroidOne" a "ProjectTreble", tak opet neslo o nic arogantniho, kdyz sem te upozornoval ze reagujes ocividne na neco comu nerozmusi  ;-)

[...] psal jsem o konceptu, že uživatel root ani nemá heslo, nelze se na něj přihlásit (ani změnit přes su) a tudíž se veškerá práce s oprávněními roota dělá tak, že se na každý jednotlivý příkaz volá sudo.
take neni pravda, pokud nekdo chce root, tak si ho (v Ubuntu resp, v kazde sudo based) aktivovat tim ze mu nastavi heslo:
Kód: [Vybrat]
sudo passwd root
[...] každou chvíli tam najdete příklady, kde je před každým příkazem automaticky sudo, aniž by někdo přemýšlel, zda jsou tam potřeba práva roota nebo ne. Je to samozřejmě úplně špatně
to mas stejne jako s "su" pred/nad kazdou sadou prikazu by bylo "su -" nasledovane treba i tim co se pod rootem spoustet nemusi, je tedy na tvurci navodu zda bude uvadet spravne:
Kód: [Vybrat]
su -
prikaz_pod_rootem1
prikaz_pod_rootem2
exit
prikaz_pod_userem1
prikaz_pod_userem2
su -
prikaz_pod_rootem3
exit
nebo zda uvede spravne pri pouziti sudo
Kód: [Vybrat]
sudo prikaz_pod_rootem1
sudo prikaz_pod_rootem2
prikaz_pod_userem1
prikaz_pod_userem2
sudo prikaz_pod_rootem3
nebo zda necha pusteni pod rootem na uzivateli a uvede na zacatku radku $ pro user, # pro root
Kód: [Vybrat]
# prikaz_pod_rootem1
# prikaz_pod_rootem2
$ prikaz_pod_userem1
$ prikaz_pod_userem2
# prikaz_pod_rootem3
akorat ze posledni zminene by vyzadovalo (a neresim ted zda je to dobre nebo spatne) aby uzivatel chapal vyznam (tzn. bylo by vhodne to vzdy uvadet, nebo spolehat na znalost(coz by ale znamenalo i vynechat prikazy ktere by "meli byt kazdemu jasne"))...
obzvlast kdyz by nekdo zkousel napsat "# prikaz" coz by se neprovedlo protoze by slo o komentar...

k3dAR

  • *****
  • 2 838
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Jak se připojit k serveru z Windows?
« Odpověď #25 kdy: 12. 03. 2019, 17:52:03 »
A co treba vygenerovat rootovi dvojici ssh klicu a pripojovat se na nej pres WinSCP? To taky nejde?
pravdepodobne nejde, sice ma tazatel pres sudo opravneni k editaci souboru vlastnene rootem(takze technicky muze pro sshd roota povolit), ale nejspis s "politickych" duvodu nechce/nemuze zmenit nastaveni sshd aby se bylo mozne pres root pripojit...

Re:Jak se připojit k serveru z Windows?
« Odpověď #26 kdy: 12. 03. 2019, 18:32:13 »
Mozna je jen zakazano prihlasit se jako root... Takze prihlasit se jako user pomoci putty, to snad pujde...
No a pak jen

Kód: [Vybrat]
sudo mc
To spusti mc pod rootem, a muzete se hrabat kde v cem chcete a prepisovat co kde chcete...

Anebo dat jen

Kód: [Vybrat]
su
A pak uz zase jen hrabat a psat kdekoliv bude mozno..
Gréta je nejlepší.

Re:Jak se připojit k serveru z Windows?
« Odpověď #27 kdy: 12. 03. 2019, 19:31:55 »
Jestli to chápu správně, potřebujete přepisovat jeden/pár soubor(ů), ale neměl byste jiným způsobem zasahovat do konfigurace serveru (tzn. teoreticky byste mohl, ale domluva je taková, že nebudete).

Zřejmě byste tedy potřeboval něco, co za vás daný soubor nahraje na server a pak provede pár příkazů, aby byl nakopírován na správné místo (a přepsal tam již dlící starší variantu).

MS Visual Studio toto dovoluje u Linux projektů. Mechanismus je takový, že se zdrojáky automaticky nakopírují na vzdálený server, tam se zkompilují (přes Makefile nebo přímými příkazy generovanými VS) a výsledek je vrácen na původní stroj. Máte přitom možnost vykonat libovolné příkazy před samotnou kompilací či po ní.

Je to pro váš případ ale, řekl bych, trochu overkill. Určitě existuje nějaký jednodušší nástroj, ve kterém by se toto dalo naskriptovat.


Re:Jak se připojit k serveru z Windows?
« Odpověď #28 kdy: 12. 03. 2019, 21:24:22 »
co je arogantiho oznacit FUD za FUD?
Arogantní je to, že si něco vymyslíte, tváříte se, že to napsal někdo jiný, a pak se do toho navážíte. O to více ta arogance vynikne, když jste buď 1) špatně pochopil celkem jasný komentář nebo 2) to překroutil schválně.

kde jsi mi "vkladal do ust" co jsem nenapsal
Prohodil jste osoby a obsazení, vkládat někomu něco do úst je vaše specializace. Já jsem v tom druhém vlákně zareagoval jedním odstavcem na jednu vaši větu, a dál jsem psal o souvisejících věcech, které ale už žádným způsobem nereagovaly na váš komentář.

dokola motal "AndroidOne" a "ProjectTreble"
To jste pořád dokola motal vy, já jsem o Project Treble nepsal nic, psal jsem jen o Androidu One.

neslo o nic arogantniho, kdyz sem te upozornoval ze reagujes ocividne na neco comu nerozmusi
Jenže problém je v tom, že jste nereagoval na to, co jsem napsal, ale jen na vaše výmysly. Arogantní je to, že hned vystartujete a předpokládáte chybu jen u druhého a ne u sebe. O to více to vynikne, když ta chyba je doopravdy u vás.

take neni pravda, pokud nekdo chce root, tak si ho (v Ubuntu resp, v kazde sudo based) aktivovat tim ze mu nastavi heslo:
Napíšete „také není pravda“, a pak napíšete to samé, co já. Ano, v Ubuntu distribucích se opravdu ve výchozím nastavení nedá uživatel root přímo používat, nepřihlásíte se na něj ani z terminálu, ani přes ssh, ani nezměníte uživatele na roota pomocí su. Můžete příkazy pod rootem provádět pomocí sudo, a nebo můžete uživatele root „aktivovat“ tím, že mu nastavíte heslo.

Re:Jak se připojit k serveru z Windows?
« Odpověď #29 kdy: 12. 03. 2019, 22:09:52 »
mas (spravcem) nastavene (v sudoers) aby jsi pri "sudo -i" nemusel zadavat heslo? protoze pokud ho kdyz jdes pres SSH k mcedit musis zadavat mozna WinSCP ma proto problem, resp. WinSCP nepouzivam, tak nevim zda se pri prihlasovani dokaze zobrazit terminal pro interakci...
O žádný terminál vůbec nejde.

Dovolte, abych připomenul, jak funguje přenos souborů „přes ssh“. Dnešní protokol ssh (verze 2; to, co používáme na portu 22), je šifrovaný kanál, uvnitř kterého se může nezávisle na sobě přenášet několik spojení, přičemž ta spojení mohou přenášet různé protokoly. Některé protokoly umožní forwardovast spojení, ta nás teď nezajímají, a jeden z protokolů je tzv. shell, který umožňuje provádět různé příkazy a mimo jiné spustit aplikaci a přesměrovat její vstup a výstup.

To, čemu se běžně říká „ssh“ a je to vzdálený terminál, znamená, že s na serveru spustí tím protokolem shell spustí shell  (třeba Bash) a jeho vstup a výstup se přesměruje tím spojením ssh. Něco napíšete u sebe na klávesnici, přenese se to tím ssh spojením a ten Bash to dostane na svém standardním vstupu. Když Bash něco vypíše na výstup, přenese se to zase k vám. Podstatné ale je, že na tom serveru běží normální proces Bashe, který má prakticky jen přesměrovaný vstup a výstup. No a v tomhle shellu samozřejmě můžete spouštět su, sudo nebo cokoli, co vás napadne, a bude to tam normálně fungovat. Třeba když spustíte sudo, spustí se normálně suid root binárka, Bash na ní přesměruje vstup a výstup a sudo změní efektivního uživatele a nahradí se jiným procesem. Že ten původní Bash byl spuštěn z ssh serveru a že celý ten vstup a výstup je přesměrován do ssh spojení v tom nehraje vůbec žádnou roli.

Naproti tomu sftp (což je ten protokol pro přenos souborů, který se běžně používá uvnitř ssh 2) jsou další příkazy,které jsou formou rozšíření implementovány nad tím shell spojením. Jsou to ale příkazy implementované přímo sftp serverem (který je součástí ssh serveru nebo jeho rozšířením), není to univerzální shell nebo spouštění procesů. Jsou tam příkazy jako „vypiš adresář“, „přenes soubor“ atd. Ale není tam žádný příkaz su nebo sudo. I kdybyste si v tom ssh spojení otevřel to shell spojení s terminálem (WinSCP něco takového umí), a tam byste udělal su, nijak to neovlivní to sftp spojení. Prostě byste v tu chvíli měl tím ssh TCP/IP spojením vedená dvě „shell“ spojení, jedno s přesměrovaným vstupem a výstupem, kde by vám běžel shell a v něm třeba su nahrazené jiným shellem, a druhé „shell“ spojení, ve kterém by se přenášely sftp příkazy – a které by běželo pořád pod tím uživatelem, který navázal to ssh spojení.

Stručně řečeno, příkazy prováděné v shellu neovlivní (z hlediska oprávnění apod.) to, co se děje v sftp spojení. Takže tazatel má následující možnosti, všechny už tu byly zmíněné:
  • Připojit se na vzdálený server do shellu a editovat soubory přímo na serveru místním editorem.
  • Editovaným souborům nastavit jako vlastníka svého uživatele, ideálně je mít ve svém domovském adresáři a editovat je tam. Pro otestování je může spouštět pod rootem rovnou a na závěr, až vše bude mít hotové, pod rootem ty soubory přesunout do finálního umístění a nastavit jim jako vlastníka roota. Existují na to různé variace, jako ponechat soubory v původním umístění a jenom jim změnit vlastníka a měnit je rovnou tam. Nebo nějak zautomatizovat zkopírování souborů z domovského adresáře, kde je bude editovat, do cílového umístění.
  • Když má na serveru roota, přidat rootovi svůj klíč a povolit přihlášení pod rootem přes ssh. Pokud admin dá roota někomu, kdo se ptá na takovéhle věci, je kaskadér, a snaha možná to zachránit nějakou ústní dohodou, že se nebude přihlašovat přímo na roota ale bude se používat sudo, možná aby byla alespoň nějaká evidence, kdo co udělal, je dost marná. Ale klidně je také možné, že ta nemožnost přihlášení na roota je jenom nezamýšlený vedlejší efekt, a když adminovi řeknete, že je pro vás kvůli editaci pohodlnější přihlašovat se tam přímo pod rootem, bez problémů vám to nakonfiguruje – protože si bude dobře vědom, že byst si to tak klidně mohl nakonfigurovat sám.
Já osobně bych volil prostřední variantu, je to nejbezpečnější – ty soubory budete editovat pod běžným uživatelem a jenom je spouštět pod rootem, což je předpokládám potřeba. Navíc ty soubory budete editovat někde jinde, než je jejich finální umístění, tj. budete mít jejich zálohu, kterou oceníte, až tam něco pokazíte. Pokud ty soubory budete do finálního umístění kopírovat častěji, napište si na to jednoduchý skriptík, který je zkopíruje, nastaví jim správné vlastníky a práva, a máte to vyřešené. Stejně se tam pak přihlašujete, abyste ten skript otestoval, tak jenom spustíte navíc tenhle kopírovací skriptík. I to by se dalo zautomatizovat, kopírovat to třeba při změně souboru, ale to už by byl trochu kanón na vrabce.